61

用户和组管理-鹏鹏-51CTO博客

 6 years ago
source link: http://blog.51cto.com/13480443/2066766
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用户和组管理

用户配置文件和密码配置文件

查看前三行/etc/passwd文件(用户配置文件),每创建一个用户都会在这个文件的最末尾增加一行

[root@apenglinux-001 ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

/etc/passwd用户配置文件的结构

用户名;密码占位符;uid;gid;用户注释信息;用户家目录;用户登陆shell

/etc/shadow用户密码配置文件

[root@apenglinux-001 ~]# head -3 /etc/shadow
root:$6$UQWG6Mpk7MzOQPvP$MnDpXbJfQwme3NPE0Kt4W/mFvpsYPy1N1oNgGMtOPIXOXjL7oPuXtfy.6dxPrk6OyAf2b/LBPhJiBCCT1eYSJ/::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::

用户名;用户密码;上次更改密码的时间(距离1970年1月1日相隔的天数);要过多少天才可以更改密码(默认为0不受限制);密码多少天后到期;密码到期前的警告天数;密码宽限天数;帐号失效时间;保留字段

注:设置一样的密码,通过加密后,得到的 /etc/shadow中的密码是不一样的


用户组管理

[root@apenglinux-001 ~]# head -3 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:

/etc/group字段含义

组名;密码;组ID;组成员

/etc/gshadow

[root@apenglinux-001 ~]# head -3 /etc/gshadow
root:::
bin:::
daemon:::

组名;密码;组管理者;组内用户列表


/etc/passwd-;/etc/shadow-;/etc/group-;/etc/gshadow-;这四个文件是对应的备份文件


useradd命令

-c: 加上备注文字,备注文字保存在passwd的备注栏中
-d: 指定用户登入时的主目录,替换系统默认值/home/用户名
-D: 变更预设值
-e: 指定帐号的失效日期,默认表示永久有效
-f: 指定密码过期后多少天关闭帐号。如果为0则表示帐号立即被停用;如果为-1则帐号一直可用。默认为-1
-g: 指定用户所属的基本组(这个组必须存在)
-G: 指定用户所属的附加组
-m: 自动建立用户的登入目录
-M: 不要自动建立用户的登入目录
-n: 取消建立以用户名称为名的群组
-r: 建立系统帐号
-s: 指定用户登入后使用的shell
-u: 指定用户ID号

userdel命令

-f: 强制删除用户,即使用户当前已登录
-r: 删除用户的同时,删除与用户相关的所有文件

groupadd命令

-g: 指定新建组的ID
-r: 创建系统组
-k: 覆盖配置文件/etc/login.defs
-o: 允许添加组ID号不唯一的组

groupdel命令

groupdel 组名
注:您不能移除现有用户的主组。在移除此组之前,必须先移除此用户
    您需要手动检查所有文件系统,以确保没有遗留的属于此组的文件

usermod命令

-c: 修改用户帐号的备注信息
-d: 修改用户登入时的目录
-e: 修改帐号的失效日期
-f: 修改在密码过期后多少天即关闭帐号
-g: 修改用户所属的基本组
-G: 修改用户的附加组
-l: 修改用户帐号名称
-L: 锁定用户帐号
-s: 修改用户登入后所使用的shell
-u: 修改用户ID
-U: 解除密码锁定

passwd命令

-k: 保留即将过过期的用户在期满后仍能使用 
-d: 删除用户密码
-l: 锁定用户
-u: 解除锁定
-f: 强制操作
-x: 两次密码修正的最大天数
-n: 两次密码修正的最小天数 
-w: 在距多少天提醒用户修改密码
-i: 在密码过期后多少天,用户被禁掉
-S: 查询用户的密码状态
--stdin: 从标准输入中读取密码

注:空密码不能登陆到Linux服务器的。/etc/shadow中的第二个字段带有"*"或"!"或"!!"或"",说明这个密码是有问题的,是不能登入系统的

[root@apenglinux-001 ~]# echo "xiaoming"|passwd --stdin xiaoming
[root@apenglinux-001 ~]# echo -e "123\n123"|passwd xiaoming

以上两条命令都可以实现修改用户的密码


mkpasswd命令

[root@apenglinux-001 ~]# yum install expect -y
[root@apenglinux-001 ~]# mkpasswd 
e5dyHB@w2
[root@apenglinux-001 ~]# mkpasswd -l 18 -s 3
&w8vx?kbeQjxXnp}u8
-l: 指定长度
-s: 指定特殊符号的个数

作用: 用于切换用户;su - username; -:彻底切换到用户目录

[root@apenglinux-001 ~]# su - zhangsan -c "touch zhangsan.txt" #以用户zhangsan的身份创建zhangsan.txt,但没有切换到zhangsan环境下

例: 如果管理员没有给普遍用户lisi创建家目录,切换到lisi,看看有什么情况

[root@apenglinux-001 ~]# su - lisi
-bash-4.2$
[root@apenglinux-001 ~]# cp /etc/skel/.bash* /home/lisi/
[root@apenglinux-001 ~]# chown -R lisi:lisi /home/lisi/
[root@apenglinux-001 ~]# su - lisi
[lisi@apenglinux-001 ~]$

作用: 可以让普通用户临时执行命令,以指定用户的身份云执行

[root@apenglinux-001 ~]# visudo

image.png

在这行下输入以下命令

lisi    ALL=(ALL)       /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
[root@apenglinux-001 ~]# su - lisi
[lisi@apenglinux-001 ~]$ sudo -l
image.png
[lisi@apenglinux-001 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[lisi@apenglinux-001 ~]$ sudo ls /root/
anaconda-ks.cfg

总结: visudo

[root@apenglinux-001 ~]# visudo #在配置文件中写如下内容
wangwu  ALL=(ALL)       NOPASSWD: /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
Cmnd_Alias APLENG = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat  #可以用命令别名
lisi    ALL=(ALL)       APLENG
Host_Alias       APENGLINUX = 192.168.221.10       #主机别名
wangwu  APENGLINUX=(root)       NOPASSWD: APLENG
User_Alias JIM = wangwu, lisi       #用户别名
JIM  APENGLINUX=(root)  NOPASSWD: APLENG
%wheel  ALL=(ALL)       ALL  #可以将用户加入到wheel组中再进行设置

限制root用户远程登陆

如: root用户不能远程登陆了,只允许登陆普通用户,普通用户su - root,这必须要求普通用户知道root用户的密码;普通用只能这样sudo su - root;这样就必须将su命令写入到lvisudo配置文件中;限制root用户不能远程登陆

[root@apenglinux-001 ~]# visudo
JIM  APENGLINUX=(root)  NOPASSWD: /usr/bin/su
[root@apenglinux-001 ~]# su - lisi
[lisi@apenglinux-001 ~]$ sudo su - root
上一次登录:二 1月 30 17:49:49 CST 2018pts/0 上
[root@apenglinux-001 ~]#
[root@apenglinux-001 ~]# vi /etc/ssh/sshd_config
PermitRootLogin no
[root@apenglinux-001 ~]# systemctl restart sshd.service

用root远程登陆

image.png
image.png

发现root不能远程登陆了


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK