Linux用户管理
一、用户信息管理
1. 登陆后信息
[root@myserver ~]#
[用户名@主机名 当前位置]用户权限
- ~ 代表当前用户的家目录,当前为root用户,所以~代表/root目录
- # 表示当前用户是超级管理员
2. 查询用户信息命令
(1) id 命令
查询当前用户详细信息
[root@myserver ~]# iduid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- uid 用户id
- gid 用户(主)组id
- groups 用户所属组(用户可能不仅仅属于一个组)
(2) whoami 命令
查看当前用户名
[root@myserver ~]# whoamiroot
(3) hostname 命令
查看当前主机名
[root@myserver ~]# hostnamemyserver
二、用户管理
1. 查
- head -2 /etc/passwd 查看/etc/passwd文本的前两行
[root@myserver ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin-------------------------------------------------------· 用户名:用户密码:用户id:组id:对用户的描述:用户家目录:所用shell· root用户的用户id和组id均为0
- cat /etc/shells 查看系统所有可用的shell解释器
[root@myserver ~]# cat /etc/shells/bin/sh/bin/bash/usr/bin/sh/usr/bin/bash-------------------------------------------------------· /bin/bash是创建用户时默认分给用户的shell解释器. /sbin/nologin,如果指定这个shell,表示禁止该用户登入系统
2. 增
useradd 添加用户
- -u 指定用户id
- -g 指定组id
- -d 指定用户家目录
- -M 不创建用户家目录
- -s 指定shell
- 不使用以上参数,默认情况下创建用户,会同时产生一个和用户同名的组
默认情况下创建用户
[root@myserver ~]# useradd usera[root@myserver ~]# id userauid=1001(usera) gid=1001(usera) groups=1001(usera)[root@myserver home]# cd /home[root@myserver home]# lsusera xuhui[root@myserver home]# tail -2 /etc/passwdxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bash-----------------------------------------------------· tail -2 /etc/passwd 查看/etc/passwd文本的后两行内容
使用参数选项创建用户
[root@myserver ~]# useradd -u 1002 -g 1001 -M -s /sbin/nologin userb[root@myserver ~]# tail -5 /etc/passwdrngd:x:976:974:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologin[root@myserver ~]# cd /home[root@myserver home]# lsusera xuhui-----------------------------------------------------------------------------------· 虽然userb显示家目录在/home/userb,但因为创建时使用了-M参数,所以并没有创建-----------------------------------------------------------------------------------[root@myserver home]# useradd -u 1003 -g 1001 -d /opt/userc -s /bin/bash userc[root@myserver home]# tail -5 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologinuserc:x:1003:1001::/opt/userc:/bin/bash[root@myserver home]# cd /opt[root@myserver opt]# lsuserc----------------------------------------------------------------------------------· 通过-d参数指定userc家目录为/opt/userc,所以userc目录创建在/opt中
3. 切换
- su 切换用户
[root@myserver ~]# tail -5 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologinuserc:x:1003:1001::/opt/userc:/bin/bash[root@myserver ~]# su usera[usera@myserver root]$ cd /home[usera@myserver home]$ lsusera xuhui[usera@myserver home]$ exitexit[root@myserver ~]#-------------------------------------------------------------------------· su usera 切换到usera用户,但并不改变当前环境变量· exit 退出当前用户模式· # 表示当前用户是超级管理员· $ 表示当前用户是普通用户
- su - 切换用户
[root@myserver ~]# tail -5 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologinuserc:x:1003:1001::/opt/userc:/bin/bash[root@myserver ~]# su - userbsu: warning: cannot change directory to /home/userb: No such file or directoryThis account is currently not available.[root@myserver ~]# su - userc[userc@myserver ~]$ pwd/opt/userc[userc@myserver ~]$ exitlogout------------------------------------------------------------------------· su - userb 无法切换,因为我们给userb设置的shell是/sbin/nologin,禁止userb登入· su - userc 切换到userc用户,同时切换到userc的环境变量
4. 删
userdel 删除用户
- userdel usera 仅删除用户,但用户的home目录数据仍存在
[root@myserver ~]# tail -3 /etc/passwdusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologinuserc:x:1003:1001::/opt/userc:/bin/bash[root@myserver ~]# userdel userc[root@myserver ~]# cd /opt[root@myserver opt]# lsuserc[root@myserver opt]# tail -3 /etc/passwdxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologin
- userdel -r userb 将用户和其对应的家目录全部删掉
[root@myserver ~]# tail -3 /etc/passwdxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologin[root@myserver ~]# cd /home[root@myserver home]# lsusera xuhui[root@myserver home]# userdel -r userauserdel: group usera is the primary group of another user and is not removed.[root@myserver home]# lsxuhui[root@myserver home]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashuserb:x:1002:1001::/home/userb:/sbin/nologin[root@myserver home]# id userbuid=1002(userb) gid=1001(usera) groups=1001(usera)--------------------------------------------------------------------------------· 因为userb未删除,且在usera这个组中,所以在删除usera用户后会给出提示信息
5. 改
usermod 修改用户属性
- -d 修改家目录
[root@myserver ~]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bash[root@myserver ~]# usermod -d /opt/usera usera[root@myserver ~]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/opt/usera:/bin/bash
- -g 修改group
[root@myserver opt]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/opt/usera:/bin/bash[root@myserver opt]# usermod -g 1000 usera[root@myserver opt]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1000::/opt/usera:/bin/bash[root@myserver opt]# id userauid=1001(usera) gid=1000(xuhui) groups=1000(xuhui)-----------------------------------------------------------------------· 注意:-g 后面加的gid应该存在
- -s 修改shell
[root@myserver opt]# tail -3 /etc/passwdxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1000::/opt/usera:/bin/bashuserb:x:1002:1002::/home/userb:/sbin/nologin[root@myserver opt]# su - userbThis account is currently not available.[root@myserver opt]# usermod -s /bin/bash userb[root@myserver opt]# tail -3 /etc/passwdxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1000::/opt/usera:/bin/bashuserb:x:1002:1002::/home/userb:/bin/bash[root@myserver opt]# su - userb[userb@myserver ~]$
三、用户密码设置
passwd 修改用户密码
[root@myserver ~]# passwdChanging password for user root.New password:BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematicRetype new password:passwd: all authentication tokens updated successfully.[root@myserver ~]#
四、文件归属管理
1. 用户分类
- 超级管理员
- 普通用户
- 系统用户
2. 文件归属更改
chown 修改文件和目录归属
[root@myserver ~]# tail -3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinxuhui:x:1000:1000:xuhui:/home/xuhui:/bin/bashusera:x:1001:1001::/home/usera:/bin/bash[root@myserver ~]# lsanaconda-ks.cfg Documents initial-setup-ks.cfg myTest.txt Public VideosDesktop Downloads Music Pictures Templates[root@myserver ~]# ll myTest.txt-rw-r--r--. 1 root root 123 Jul 25 02:11 myTest.txt[root@myserver ~]# chown usera:usera myTest.txt[root@myserver ~]# ll myTest.txt-rw-r--r--. 1 usera usera 123 Jul 25 02:11 myTest.txt[root@myserver ~]# chown root myTest.txt[root@myserver ~]# ll myTest.txt-rw-r--r--. 1 root usera 123 Jul 25 02:11 myTest.txt[root@myserver ~]# chown :root myTest.txt[root@myserver ~]# ll myTest.txt-rw-r--r--. 1 root root 123 Jul 25 02:11 myTest.txt[root@myserver ~]#---------------------------------------------------------------------------------· chown usera:usera myTest.txt 将myTest.txt的用户归属和组归属均改为usera· chown root myTest.txt 将myTest.txt的用户归属改为root· chown :root myTest.txt 将myTest.txt的组归属改为root
五、group组管理
- /etc/group 组管理配置文件
[root@myserver ~]# tail -3 /etc/grouptcpdump:x:72:xuhui:x:1000:usera:x:1001:
- groupadd 添加组
[root@myserver ~]# tail -3 /etc/grouptcpdump:x:72:xuhui:x:1000:usera:x:1001:[root@myserver ~]# groupadd userb[root@myserver ~]# tail -3 /etc/groupxuhui:x:1000:usera:x:1001:userb:x:1002:[root@myserver ~]#
- groupdel 删除组
[root@myserver ~]# tail -3 /etc/groupxuhui:x:1000:usera:x:1001:userb:x:1002:[root@myserver ~]# groupdel userb[root@myserver ~]# tail -3 /etc/grouptcpdump:x:72:xuhui:x:1000:usera:x:1001:[root@myserver ~]#
