您的位置:首页 > 其它

3月21日学习笔记-用户和组管理

2015-03-22 00:27 162 查看
一、/etc/passwd文件详解
二、/etc/shadow文件详解
三、新增/删除用户和组
四、创建、修改用户密码
五、用户身份切换
六、应用技巧

1. /etc/passwd
由 : 分隔成7个字段
(1) 用户名 命名规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法
(2) x 放密码,安全起见放到 /etc/shadow
(3) uid 用户的uid号 范围(0-4294967294=2^32-2) root uid=0
1-499系统保留
普通账户是从500开始
(4) gid 组ID号
对应 /etc/group 的gid
(5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等 用 chfn 用户名 更改
(6) 用户家目录
(7) shell /bin/bash, /bin/false, /sbin/nologin 这个用户所使用的shell
2. /etc/shadow
$6 sha-512 加密
$5 sha-256
$1 md5
使用 : 分隔9个字段
(1) 用户名
(2) 密码
如$6$为SHA-512加密;如$5$为SHA-256加密;如$1$为MD5加密
(3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’.
(4)要过多少天才可以更改密码, 0 不限制
(5)密码多少天后到期,默认是99999,可以理解为永远不需要改
(6)密码到期前的警告期限
(7)账号失效期限,到期后过多少天锁定帐号
(8)账号的生命周期
(9)作为保留用的,没有什么意义
注意:此项内容工作中的操作较少,面试不会问到以上这些

3. 新增/删除用户和组
groupadd 组名 添加组
groupadd -g gid号 组名 给添加组指定gid号(如不指定,递增创建gid)
groupdel 组名 (如果组内有用户,不能删除)
useradd -u uid号 用户名 指定uid号
useradd -g gid号 用户名 给新建用户指定gid号(gid必须之前就存在)
useradd -G gid号 用户名 添加附属组
useradd -d 路径 用户名 指定家目录
useradd -M 用户名 不建立家目录 (会指定家目录,但没有创建)
如需要手动创建家目录,需要往家目录拷贝一些文件:
cp /etc/skel/.b* /home/用户名 手动将环境变量文件拷贝到用户家目录中
useradd -s shell路径 用户名 指定shell
userdel -r 删除用户的家目录
usermod -u 更改用户的uid
-s 更改shell
-d 更改家目录
-L 锁定账户
-U 解锁账户
-g 指定gid
-G 添加附属组

chfn 用户名 输入用户个人信息
chfn finger
另:如需要查看用户的属性信息,输入chfn 用户名 即可。

4. 创建、修改用户密码
passwd
创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。

mkpasswd 生成密码的工具,
安装 expect包

mkpasswd -l 15 -s 0
-l 指定密码长度
-s 指定密码中特殊字符最少位数,默认是1位

5. 用户身份切换
su 用户名 半切换账户 (不会切换环境变量)
su - 用户名 全切换账户
su - 用来初始化环境变量 $PATH $HOME等

小技巧:su -c "touch /tmp/user4.txt" -user4 用user4 执行“”里面的命令

普通用户如果想要用su -命令切换到root账户下,需输入root用户的密码,这样普通用户就会获得root的所有权限,很不安全,所以我们可以用sudo命令解决这个难题。

sudo 可以让普通用户临时获得另外一个用户的权限执行一些命令。
普通用户使用sudo命令需要编辑文件
输入visudo 编辑/etc/sudoers 配置文件 (没有命令需安装 yum install -y sudo)
root ALL=ALL ALL
xiaoqi ALL(root) /bin/ls (手动输入,即时生效) 此处也可以填写用户组
(上面这行命令的意思是 允许xiaoqi临时使用root账户的/bin/ls命令)
[xiaoqi@laoqi ~]$ sudo /bin/ls /root/ //在xiaoqi账户输入sudo命令,查看/root/下的文件
[sudo] password for xiaoqi: //提示要输入密码 再用这个命令,密码会被记住
123 1.txt anaconda-ks.cfg install.log install.log.syslog test2.txt test3.txt //密码输入正确后,正常显示了/root/下的文件内容。
也可以visudo后,输入下面的指令:
xiaoqi all=(root) NOPASSWD: /bin/ls, /bin/su
普通用户输入 sudo bin/su - 即可切换到root账号下
或输入sudo su -亦可

怎么样限制让root不能登录系统?
vi /etc/ssh/sshd_config
文本文件找到这一行:PermitRootLogin Yes 改成PermitRootLogin no
重启一下服务 /etc/init.d/sshd restart

格式: user host=(as_user) commands
比如: aming ALL=(root) /bin/ls //它的意思是,让aming这个普通用户,拥有root的权限,针对ls这个命令。

应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户
User_Alias USER_SU = test, test1, aming //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su //做命令的别名,可以写多个命令
USER_SU ALL=(ALL) NOPASSWD: SU //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入自己的密码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: