Linux 创建修改删除用户和组的方法
作者:pursuer.chen 发布时间:2023-07-04 19:22:53
介绍
在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就不单单就是useradd了,接下来就来详细了解账号管理的相关信息。
用户信息
先从用户信息开始分析,可以通过查询/etc/password文件,每一行代表一个用户信息
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
mysql:x:496:501::/home/mysql:/bin/bash
每个冒号分隔一部分,整行总共分为7个部分。
1.用户名
2.用户密码,早期版本的账号密码是直接存在这里,为了兼容所以也保留下了这部分,用X代替。
3.UID:所属的用户ID,每个文件的前面都有该文件所属的用户和组,其实存的是UID只不过是通过UID再去etc/password、/etc/shadow中找到对应的UID和GID的名称。
超级用户的uid=0
系统用户(1-499):其中1-99是系统创建的,100-499是用户创建的系统账户,系统用户不能登入但是可以执行系统的一些命令,这个跟最后指定的shell有关;有一个特殊的shell是/sbin/nologin
普通用户(500-65535)
4.GID:账号所属的用户组ID,和/etc/group组文件有关联
5.用户描述
6.用户的家目录:创建用户的家目录默认是在/home/用户/,在创建用户的时候可以指定用户的家目录,系统用户的家目录比较特殊,比如root用户的家目录是/root
7.shell:shell是终端和kernel(内核)沟通的桥梁、内核再和低层的硬件交互(包括CPU、主板、硬盘、显卡、光驱等),linux默认的shell是/bin/bash
密码信息
用户密码文件中每一行记录一个用户的密码信息,总共有九个部分
[root@localhost ~]# cat /etc/shadow
root:$1$4/CBv0UU$GZ1mEvqxy6/9UaTGI9YUT0:16862:0:99999:7:::
1.用户名:对应/etc/password文件中的用户信息
2.密码:密码存的是密文
3.最近更改密码的日期:linux将1970年1月1日作为1,所以上面的16862是累加的,具体就不去算了
4.密码不可被更改的天数:0代表密码随时可以被更改,通常可以用来设置某个用户在多少天密码不能被更改
5.密码需要重新更改的天数:99999为273年,改时间是在第3部分的基础上再相加的。
6.密码需要修改前的警告天数:改天数是在第5的基础上计算的,这里默认是7天也就是密码在需要更改前的第7天开始就发出警告。
7.密码过期后账号宽限的天数:当密码超过了需要更改的天数后,如果用户依然没有更改密码,那么该密码就过期了,在过期的这几天里密码依旧可以登入当用户在宽限的时间内登入系统系统会强制用户修改密码,如果用户在宽限的天内还未修改密码那么密码就永久过期无法再登入,只有账户超出了密码过期的天数之后账户才失效,所以一个账户总的有效时间是3+6+7。
8.用户失效的日期:改日期同第3部分一样都是从1970年1月1日开始计算出来的数字,超过这个日期之后无论用户密码是否过期用户都失效不能再使用,改日期通常会用在规定一个用户在规定的日期之后就用户就不能使用的收费系统中。
9.保留部分
计算当前日期通过1970年换算过来的数字
[root@localhost ~]# echo $(($(date +'%s')/86400+1))
16927
计算指定日期通过1970年换算过来的数字
[root@localhost ~]# echo $(($(date --date="2016-01-01" +'%s')/86400+1))
16802
创建用户
明白了上面的概念之后就可以来创建用户了,创建用户的命令是useradd,接下来看几个主要的参数。
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-m\M] [-c 说明] [-d 家目录绝对路径] [-s shell] 账号名
-c, --comment COMMENT 用户说明
-d, --home-dir HOME_DIR 用户的家目录
-D, --defaults 默认的用户配置
-e, --expiredate EXPIRE_DATE 用户的失效日期,这里需要指定的是从1970年1月1日开始计算出来的数字,比如16925代表2016年5月4日过期,对应密码文件的第8部分
-f, --inactive INACTIVE 指定密码过期的时间,这里指定的是数字,比如10代表密码在过期的10天内还可以登入但是登入后需要强制修改密码, 对应密码文件的第7部分
-g, --gid GROUP 用户的GID
-G, --groups GROUPS 列出用户还能加人的组、次要组
-h, --help 帮助信息
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home 强制需要创建家目录
-M, --no-create-home 强制不创建家目录
-N, --no-user-group 不创建用户的组名和用户名一样
-o, --non-unique 允许创建的用户uid相同,默认情况下用户的UID是唯一的,加上-o参数可以创建相同UID的不用用户
-p, --password PASSWORD 指定创建用户的密码,这里的密码存储的是密文,所以还需要知道密文对应的明文密码是多少
-r, --system 创建一个系统用户
-s, --shell SHELL 指定用户的shell
-u, --uid UID 指定用户的uid
-U, --user-group 创建的用户组名同用户名,这是默认的
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
1.创建用户test
创建用户不加参数默认会创建一个同名的用户组、密码为空,用户的UID和GID都是500之后在现有的UID和GID的基础上往后自动添加、默认会创建一个同名的家目录家目录的默认权限是700
[root@localhost ~]# useradd test
[root@localhost ~]# grep test /etc/passwd /etc/shadow /etc/group
/etc/passwd:test:x:501:502::/home/test:/bin/bash
/etc/shadow:test:!!:16925:0:99999:7:::
/etc/group:test:x:502:
[root@localhost ~]# ll -d /home/test
drwx------. 4 test test 4096 May 4 16:25 /home/test
2.创建用户new备注用户为test,指定用户UID为600,用户的组初始组为test、用户的次要组为mysql,指定用户的失效日期(注意这里的失效日期也是需要通过1970年1月1日进行换算)、指定用户的过期天数
3.创建系统用户old
创建的系统用户虽然在用户文件中有指定家目录,但是实际上在home目录下并不会创建对应用户的目录,且不会创建用户邮件通知目录。
4.创建不允许登入的用户
5.指定用户家目录
先创建用户家目录
[root@localhost ~]# mkdir -p /test/home
[root@localhost ~]# mkdir /test/home/testuser
创建用户并指定家目录
[root@localhost ~]# useradd -d /test/home/testuser testuser
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
注意:这里的家目录是绝对路径,也就是你指定了那个目录家目录就是哪个目录不会在你指定的目录下再创建目录,这里会有警告说用户不能拷贝文件到家目录,因为家目录的权限还是之前创建目录用户的权限,这个时候需要给家目录赋予用户拥有者。
[root@localhost ~]# chown testuser:testuser /test/home/testuser
[root@localhost ~]# ll /test/home
total 4
drwxr-xr-x. 2 testuser testuser 4096 May 5 06:22 testuser
[root@localhost ~]#
删除用户
userdel [options] LOGIN
-f, --force 强制删除用户,不管该用户是否在使用
-h, --help 帮助信息
-r, --remove 删除用户和组并且删除用户的家目录和邮件通知目录
-Z, --selinux-user 删除SELinux用户
1.不加参数删除用户
userdel testuser
不加参数删除只会删除用户、密码、用户组,不会删除用户的家目录和用户的邮件目录
2.删除用户同时删除用户的家目录和邮件通知目录
userdel -r test
使用-r参数删除用户会同时删除用户的家目录和用户的邮件通知目录,如果用户的用户组是使用其它用户的用户组,其它用户组不会被删除。
用户组
创建用户组
groupadd groupname
删除用户组
groupdel groupname
修改用户组
--修改用户组名
groupmod -h newname oldname
--修改用户组ID
groupmod -g newgid oldgid
单独对用户组的操作用的不会很多,这里只需要了解一下就好。
总结
修改用户这里就不做详细的解释,跟创建用户的语法相差不大,
来源:https://www.cnblogs.com/chenmh/p/5459359.html
猜你喜欢
- 一、状态页所谓的404页就是服务器404重定向状态返回页面。数字404指的是404号状态码。一般常用到的有200号状态码和404号状态码。2
- UCenter Home 2.0后续版本持续改进创新已经成为广大站长密切关注的话题,为了让广大站长及时了解UCenter Home产品研发动
- 1)不要下载www.php.net上面那个Windows Installer装完了之后不能用MYSQL都不知道问题出在哪。永远修不好,没错的
- 随着3G网络的完善以及手持终端的快速增长,亚洲最大的网络零售商圈淘宝网也加速了其无线战略部署。5月12日,淘宝网正式对外发布了手机版旺旺,目
- 对于研究SEO(搜索引擎优化)的朋友来说,都喜欢研究收集整理一些SEO工具。有些SEO工具是查询性质的,也有一些黑帽性质的,秦爱在这里给出的
- 一、什么是组策略(一)组策略有什么用?说到组策略,就不得不提注册表。注册表是Windows系统中保存系统、应用软件配置的数据库,随着Wind
- 本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助。基本环境:Centos7、tomcat8、j
- 北京时间10月12日消息,国外著名科技博客Mashable发文称,日前英国《每日电讯报》曾宣称Twitter正在考虑增加视频消息功能,但Tw
- ixwebhosting作为国外知名的主机商之一,购买它们的主机时,它不仅赠送免费域名,还赠送独立IP,当我们使用免费域名的时候,有时为了某
- 新浪科技讯 北京时间9月13日午间消息,在活跃用户突破1亿大关后,Twitter宣布将在未来几周内新增5种语言,分别是印地语、菲律宾语、马来
- 想开网店,如何才能成功?货源从哪里来?产品上架后如何推广网店?如何选择好的快递公司和值得信耐的支付平台,相信下文会对你有所帮助,成功做好网店
- 想必大家都知道,在给网站做seo优化技术时,选择合适的关键字是非常重要的一步。那么选择这些关键字,除了了解用户习惯外,我们还可以通过一些关键
- 由于ASP它本身是服务器提供的一贡服务功能,特别是最近由dVBbs的upfile文件出现漏洞以来,其高度的隐蔽性和难查杀性,对网站的安全造成
- 其实这个也没有什么可以改的,因为以前的也能用,不过局限性太小,现在,在代码里面用一个函数来获取表单所有数据来构造URL,避免一些不必要的麻烦
- GoDaddy主机用户在购买、建立、管理托管帐户过程中,创建了多个帐户来登陆与其托管网站有关的不同界面。每个帐户都由一个用户名及密码来保护。
- 笔者见到有些站长在问,如何去掉有无新帖版块图标,并为版块设置自己喜欢的个性化图标,在此特意把方法写出来,希望可以帮到有需要的站长。以 Dis
- Permission denied:出现的原因的是:没有权限进行读、写、创建文件、删除文件等操作。解决方法:输入命令 sudo chmod
- 防复制的一个非常好的办法就是将文字替换为图片,汉字的数量非常庞大,总数大约九万左右,如果全部替换的话那先期工作将非常庞大,我们就要想其他的好
- 我写这片文章只是想让你明白深刻理解某一协议的好处。高手免看。如果有人利用这片文章所做的一切事情,盖不负责。网上关于ARP的资料已经很多了,就
- 在过去的一年里,受流氓/恶意软件感染的网站数目从每周几个增长到每周数千。在我们以前的帖子“关于恶意软件警告”以及“停止恶意软件讨论组”里,我