Linux基础--用户与组

1. 创建组

增加oinstall组,指定组ID。
[root@localhost ~]# groupadd -g 1023 oinstall
增加oper系统组。
[root@localhost ~]# groupadd -r oper


2. 删除组

[root@localhost ~]# groupdel oper


3. 修改组

修改oinstall组的组ID为1024
[root@localhost ~]# groupmod -g 1024 oinstall
修改oracleinstall组的组名为oinstall
[root@localhost ~]# groupmod -n oinstall oracleinstall


4. 创建用户

创建oracle用户,用户ID为1010,主组为oinstall,附加组为dba和oper,家目录为/home/oracle,shell为bash。
[root@localhost ~]# useradd -u 1010 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle
增加系统用户,系统用户仅用于启动系统进程,不能登录交互式shell环境,不会为其创建家目录和邮箱。
[root@localhost ~]# useradd -r centos


在不指定这些选项时,useradd会按照默认选项创建用户。

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes


这些默认选项实际是记录在/etc/default/useradd文件中,另外/etc/login.defs也会影响useradd、userdel等命令的默认动作。


这些默认选项中需要注意的是SKEL=/etc/skel,这是帮助手册中对它的说明。

骨架目录,包含使用 useradd 创建用户时,要复制到用户主目录中的文件和目录。
这个选项只有在指定 -m (或 --create-home) 选项时才有效。
如果此项没有设置,骨架目录使用 /etc/default/useradd 中的 SKEL
的变量或默认为 /etc/skel。
如果可以,也复制 ACL 和扩展属性。


用户都记录在/etc/passwd当中,以冒号分隔各字段。这里的password只是占位符,并非真正的用户口令。

name:password:UID:GID:GECOS:directory:shell


用户口令信息会加密存放在/etc/shadow当中,而且文件权限是000,但这个对root是无效的,也就是说这个文件只有root能打开。

[root@localhost ~]# ls -l /etc/shadow
---------- 1 root root 1080 Mar  3 20:35 /etc/shadow


口令加密成如下形式,$为分隔符。第1段为加密方式(6),第2段为salt(Ma./WVpA),第3段为加密后的结果。

$6$Ma./WVpA$DQACbc90xxddaTTTjcpMgHPs3b5z5mC2VVpZphO5jspk6ggW4B4nVQRIadrVRg2KoMPPzJ0vBS38qpOvFzY1F0

加密方式对应表

ID  | Method
---------------------------------------------------------
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
   | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)


/etc/shadow文件中有几个字段是对账户或口令的期限设定,具体说明参照man手册。

[root@localhost ~]# man 5 shadow

lastday 为口令最近一次修改时间

mindays 为口令最短使用期限,这段时间内不得修改口令。

maxdays 为口令最长使用期限,到期后用户应该修改口令。

warndays 为警告期,口令马上就要过期,提前一段时间提醒用户修改口令。

inactive 为非活动期,口令到期后仍留有一段时间让用户可以登录,但登录之后只能修改口令,不能做其他任何事情。

过了非活动期用户仍然没有修改口令,用户将被锁定不能再登录。


以上为口令期限,还有一个字段是账户期限,二者是不同的概念。man手册中的解释是这样的。

Note that an account expiration differs from a password expiration. 
In case of an acount expiration, the user shall not be allowed to login. 
In case of a password expiration, the user is not allowed to login using her password.


5. 修改账户或口令的期限设定

口令最短使用期限7天,最长使用期限30天,警告期3天,非活动期3天。
[root@localhost ~]# chage -m7 -M30 -W3 -I3 mageedu
修改口令最近一次修改时间为2016-03-06
[root@localhost ~]# chage -d 2016-03-06 mageedu
设置账户过期时间为2016-06-06
[root@localhost ~]# chage -E 2016-06-06 mageedu


6. 删除用户

删除用户,默认不会删除用户的家目录和邮箱。
[root@localhost ~]# userdel mageedu
删除用户,同时删除用户的家目录和邮箱。
[root@localhost ~]# userdel -r mageedu

7. 修改用户

[root@localhost ~]# usermod -u 1020 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle
[root@localhost ~]# usermod -l rhel RedHatEnterpriseLinux#改用户名
[root@localhost ~]# usermod -L test#锁定用户账户
[root@localhost ~]# usermod -U test#解锁用户账户


8. 用户密码管理

修改当前用户自己的密码
[root@localhost ~]# passwd
修改其他用户的密码
[root@localhost ~]# passwd mageedu

注意:

  • 只有root用户可以修改其他用户的密码,其他用户只能修改自己的密码。

  • root修改密码时不需要输入原始密码,其他用户修改密码时需要先输入原始密码验证身份。

  • root用户可以使用任意字符串作为密码,而其他用户密码必须满足一定的复杂度要求。


锁定用户的密码
[root@localhost ~]# passwd -l mageedu
解锁用户的密码
[root@localhost ~]# passwd -u mageedu
清除用户的密码
[root@localhost ~]# passwd -d mageedu


9. 组管理

给组设定密码
[root@localhost ~]# gpasswd mageedu
删除组密码
[root@localhost ~]# gpasswd -r mageedu
给组增加用户成员
[root@localhost ~]# gpasswd -a twoyang mageedu
从组中删除用户成员
[root@localhost ~]# gpasswd -a twoyang mageedu


10. 查看用户ID信息

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
-u, --user     print only the effective user ID
-g, --group    print only the effective group ID
-G, --groups   print all group IDs
-n, --name     print a name instead of a number, for -ugG

11. 切换用户

切换至mageedu用户身份,仍使用root用户的环境变量。
[root@localhost ~]# su mageedu
切换至mageedu用户身份,并加载mageedu用户的环境变量。
[root@localhost ~]# su - mageedu
使用mageedu用户身份执行命令"date +%H:%M:%S",并将结果返回。
[root@localhost ~]# su - mageedu -c "date +%H:%M:%S"
16:21:33


12. 登录一个新组

[root@localhost ~]# id 
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# newgrp mageedu
[root@localhost ~]# id
uid=0(root) gid=1000(mageedu) groups=0(root),1000(mageedu)
注意:如果登录的新组设置有组密码,就需要验证密码后才能登录。当然对root来说是没有用的。


你可能感兴趣的:(linux,用户,组)