用户和组的管理
一、用户的分类
按照用户的权限分类,分成了管理员用户与普通用户。管理员用户(root)拥有至高的权限,应避免在企业的运维中,使用root登录 ,root用户的ID为0;应该使用普通用户登录到系统,如果执行的程序需要使用管理员,则使用sudo临时进行切换。
普通用户按照用户是否需要登录到系统,分成了系统用户和非系统用户,系统用户,一般用于某个服务使用,非系统用户,就是我们常见的登录用户, 系统用户、系统组与普通的登录用户、组,在其ID上存在区别,
在CentOS 7上,系统用户的ID号1-999,普通用户的ID号1000-60000, 在CentOS 6上,系统用户的ID号是1-499,普通用户的ID从500-60000
二、创建、删除用户
1. 创建用户 useradd
使用方法: useradd [选项] 登录名
选项
-c: 指定注释信息
-d 家目录: 指定家目录的位置
-e EXPIRE_DATE: 用户账户被禁用的日期,日期以YYYY-MM-DD格式指定
-f INACTIVE: 密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能
-g GROUP: 用户初始登录组的组名或号码,这个组应该已经存在于系统中
-G GROUP: 指定用户的附加组
-r: 创建一个系统账户
-s SHELL: 指定用户登录的shell名
-u UID: 指定用户ID的数字值
2. 删除用户 userdel
使用方法: userdel [选项] 登录名
选项: -r 在删除用户时,一并删除用户的家目录,默认情况下,不会删除用户的家目录。
三、 passwd和shadow文件的格式
1. passwd文件的格式
tail /etc/passwd
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh
passwd文件的格式
1. account: 用户账号
2. password: 加密的密码或者密码占位符
3. UID: 用户的ID号
4. GID: 用户的基本组ID
5. GECOS: 注释信息
6. directory: 用户的家目录位置
7. shell: 用户登录时的shell
shadow文件的格式:
1. 登录名
2. 加密了的密码
3. 上次更改密码的日期:表示从1970年1月1日开始的天数。
4. 密码最小使用期限
5. 密码最大使用期限
6. 密码警告时间段:密码过期之前,提前警告用户的天数
7. 密码禁用期: 密码过期以后,仍然接受此密码的天数,在此期间登录,会强制用户修改密码,当密码过期并且已经过了这个宽限期以后,使用用户的当前密码将不能登录系统。用户需要联系管理员( password inactivity period)
8. 账户过期日期:账户过期的日期,表示从1970年1月1日开始的天数,账户过期日期不同于密码过期,账户过期时,用户将不允许登录;密码过期时,用户将不被允许使用其密码登录。(account expiration date)
9. 保留字段
##########################################################################
tail -2 /etc/shadow
liuqing:$6$RbuXUmQFp70flw05$1RalKHCSJhiwi1bjO1Nsjd200rNbd..M.djiTh2KQhwRoMJSGalUi4i0ICWt1TXiQ4C0nyy6ev8TRXk5ztoCu0::0:99999:7:::
liu008qing:$6$wh82xgsZ$3yDbq0Z4MLsuX9dW/DT9lrY9cy7/Jer51cnkICZo7/mh82ru88Lu1SR.Sn./7lmX8PAqaO0mSMZV3tsB29K5b/:17497:0:99999:7:::
示例:
1. 创建一个用户liu008qing,注释为”Liuqing login”, 家目录为/var/liuqing,shell为/bin/tcsh
[root@localhost ~]# useradd -c “Liuqing login” -d /var/liuqing -s /bin/tcsh liu008qing
liu008qing:x:4003:4003:Liuqing login:/var/liuqing:/bin/tcsh
2. 账户禁用的宽限期实验
[root@localhost ~]# useradd -f 12 test2
[root@localhost ~]# tail -1 /etc/shadow
test2:!!:17497:2:6699:7:12::
3. 账户禁用的宽限期、账户过期实验
[root@localhost ~]# useradd -f 12 -e 2018-02-05 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:
如何更改账户的密码最长使用时间、最短使用时间、密码过期警告时间:
1. 如果针对所有的用户,可以修改/etc/login.defs,并修改以下项
PASS_MAX_DAYS:9999
PASS_MIN_DAYS:0
PASS_WARN_AGE:7
2. 如果针对特定的用户,编辑/etc/shadow,用户对应的那一行,进行修改。
当达到了告警的时间,会如下显示:
Warning: your password will expire in 4 days
Last failed login: Mon Nov 27 17:10:41 CST 2017 from 192.168.58.158 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Nov 27 17:08:46 2017
zhangsan:$6$tbNWSlL6$0gCBRp3YdHDNEjJZuIpALdlu32ZvO0lVrt473.MivOJAzWlSEoBdc9VfVUq7SYBGIT/j/sL.x5K6IPqIjqinN/:17493:2:8:7:::
实验时间为17497,将密码最小时间改成2天,最大时间改成8天,过期警告时间改成7天,并且将上次密码修改时间改成了4天以前。就出现了如上的提示。
##########################################################################
四、 修改用户属性
man usermod
usermod [选项] 登录名
-u: 修改用户的ID为此处指定的新UID
-g: 修改用户所属的基本组
-G: 修改用户所属的附加组,原来的附加组会被覆盖,
-a -G: 追加用户的附加组。
-c: 修改备注信息
-d: 修改用户的家目录,家目录的原有的文件丢失
-d -m: 将用户原有家目录移动到新目录
-l: 修改用户名
-s: 修改用户的默认shell
-L: 锁定用户密码,禁止用户登录 即在用户原来的密码字符串之前添加一个”!”
-U: 解锁用户的密码
##########################################################################
[root@localhost ~]# tail -1 /etc/passwd
test3:x:4006:4006::/home/test3:/bin/bash
[root@localhost ~]# usermod -u 1888 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:4006::/home/test3:/bin/bash
[root@localhost ~]# usermod -g 1999 test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash
[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 组=1999(corun)
[root@localhost ~]# usermod -a -G liuqing,mygrp test3
[root@localhost ~]# id test3
uid=1888(test3) gid=1999(corun) 组=1999(corun),1000(liuqing),1002(mygrp)
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999::/home/test3:/bin/bash
[root@localhost ~]# usermod -c “This is test3” test3
[root@localhost ~]# tail -1 /etc/passwd
test3:x:1888:1999:This is test3:/home/test3:/bin/bash
##########################################################################
五、使用chage来更改账户的过期时间
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17497:2:6699:7:12:17567:
[root@localhost ~]# chage -d 17488 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:17567:
[root@localhost ~]# chage -E 18000 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:2:6699:7:12:18000:
[root@localhost ~]# chage -m 4 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:6699:7:12:18000:
[root@localhost ~]# chage -M 9 test3
[root@localhost ~]# tail -1 /etc/shadow
test3:!!:17488:4:9:7:12:18000:
六、基本组与附加组:
一个用户只能有一个基本组,一个用户可以拥有多个附加组; 用户在创建文件时,其中组的权限,会赋予给基本组,即文件的所属组是文件属主的基本组; 用户的附加组属于某一个组,如果这个组是文件的属组,则用户拥有属组的权限。
更改用户的基本组与附加组,在前面已经介绍了,使用usermod -g来更改用户的基本组,使用usermode -a -G来添加用户的附加组,如果不使用-a选项,则会清空原有的附加组。
组密码的设置及其作用: 对组设置一个密码,当一个用户需要使用某个组做为属组来创建、访问文件时,使用newgrp来进行切换,切换后,用户的基本组就是我们设置的这个组。
##########################################################################
[root@localhost ~]# gpasswd corun
正在修改 corun 组的密码
新密码:
[liuqing@localhost ~]$ newgrp corun
密码:
[liuqing@localhost ~]$ touch /tmp/liuqing.test
[liuqing@localhost ~]$ ll /tmp/liuqing.test:
-rw-r–r–. 1 liuqing corun 0 11月 27 20:48 /tmp/liuqing.test
##########################################################################
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90202