本文梳理了一下Linux用户和用户组的常用的一些命令。
相关的配置文件:
- /etc/group 存储当前系统中所有用户组信息
- /etc/gshadow 存储当前系统中所有用户组的密码
- /etc/passwd 存储当前系统中所有用户的信息
- /etc/shadow 存储当前系统中所有用户的密码信息
配置文件的内容格式说明:
说明:在使用cat /etc/group查看的时候,你会发现有的组最后是不显示用户列表的。那么如何查看用户组的用户名单列表,下面有code。
用户组的添加,修改,删除
- groupadd group_name//添加用户组
- groupmod -n new_name old_name//修改用户组的名字
- groupmod -g 668 group_name//修改组编号
- groupdel group_name//先删除用户再删除用户组
用户的添加,修改,删除
- useradd -g group_name user_name//用户组中添加用户或(gpasswd -a username groupname)(创建用户的时候,没有指定用户组,则系统会创建与用户名相同的用户组)
- useradd -d /home/xxx user_name//个人文件夹
- usermod -c info user_name//添加用户备注信息
- usermod -l new_user old_name//新用户 占用 旧用户(离职)
- usermod -d /home/xxx user_name//修改用户的文件路径
- usermod -g group_name user_name//移动用户
- userdel user_name//删除用户(不会删除个人文件夹)
- userdel -r user_name//用户和文件一同删除
passwd 命令
- passwd -l user_name//锁定用户(违规用户)或者 在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。
- passwd -u user_name//解锁用户
- passwd -d user_name//清除用户的密码
- passwd user_name//修改或设置用户密码
主组&附属组
一个用户可以同时属于多个用户组(其中必有一个主组和多个附属组)
- gpasswd -a user_name affiliated_group//用户添加附属组
- newgrp affiliated_group //临时切换到附属组(有密码的需要输入密码)
- gpasswd -d user_name affiliated_group//从附属组中删除用户
- useradd -g main_group -G group1,group2,group3 //
- gpasswd group_name//修改组密码
- gpasswd -d A GROUP 或者 从组中删除用户,编辑/etc/group 找到GROUP1那一行,删除 A
查看命令
- Whoami//我是谁?显示当前登录用户
- id username//显示指定用户信息,包括编号、用户名、主要组编号及名称,附属组列表
- groups user_name//查看用户所属组别
- id -gn//查看当前登录用户,所属组别,或者直接groups
- id -a mark//显示详细的信息,如:uid=500(mark) gid=500(teacher) 组=500(teacher)
- 查看某个组的所有组员 grep ‘groupName‘ /etc/group //查看组的ID awk -F":" ‘{print $1"tt"$4}‘ /etc/passwd | grep ‘groupId‘ //将groupId替换为ID
设置用户文件的访问权限
- chmod 命令,功能:chmod命令是非常重要的,用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.
- chgrp命令,功能:改变文件或目录所属的组。chgrp -R groupName fileName
- chown 命令,功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
其他命令
- chfn username//设置用户资料,依次输入用户资料
- finger username//显示用户详细资料
- touch /etc/nologin//暂时禁止所有普通用户的登录,建一个空的文件就可以了。
- su username//切换用户,不加参数(username)代表切换到root
- 用户已经登录,无法删除用户,pkill -u username(粗暴的方法)然后删除(不建议使用)