linux运维、架构之路-linux用户管理

一、 linux系统用户分类

1、分类

①超级用户:root,UID为0

②普通用户:UID是500-65535的用户

③虚拟用户:UID在1-499,一般不能登录,满足文件或服务启动的需要,/sbin/nologin

2、与用户相关的配置文件

[root@svn /]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root  594 Jul  3 14:01 /etc/group     #——>用户组的信息
---------- 1 root root  484 Jul  3 14:01 /etc/gshadow   #——>用户组的密码文件信息
-rw-r--r-- 1 root root 1091 Jul  3 13:56 /etc/passwd    #——>用户的信息

passwd每列所代表的含义

3、与用户相关的目录和文件

[root@svn /]# ll -a /etc/skel/ #——>创建新用户家目录的模板
drwxr-xr-x.  2 root root 4096 Apr 24 18:33 .
drwxr-xr-x. 78 root root 4096 Jul  3 14:01 ..
-rw-r--r--.  1 root root   18 Mar 23 08:15 .bash_logout
-rw-r--r--.  1 root root  176 Mar 23 08:15 .bash_profile
-rw-r--r--.  1 root root  124 Mar 23 08:15 .bashrc

*****企业小案例:请问登录oldboy用户出现如何情况,该如何处理

[root@svn ~]# su - oldboy
-bash-4.1$ 
-bash-4.1$ 
解答:原因是这个oldboy用户家目录下的环境变量文件被删除了,只需到/etc/skell/目录下,复制
.bash_profile
.bashrc到当前用户下,然后重新登录oldboy用户即可

二、用户管理命令

1、userad:添加用户

-g 指定用户属于的组
-u 指定用户的UID
-s 指定用户使用的shell解释器,系统默认为/bin/bash,虚拟用户为/sbin/nologin
-M 表示不创建用户家目录

2、userdel:删除用户

        工作中一般不用的用户最好在/etc/passwd中注释掉,默认不删除用户的家目录和邮箱,加上-r参数删除与用户有关的所有信息

3、usermod:修改用户信息

-s 修改用户使用的shell
-g 修改用于属于的组

4、passwd为用户设置密码

--stdin 非交互式设置密码
[root@svn /]# echo 123456|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.

5、groupadd 创建用户组

-g 指定用户组的GID

******企业面试题:批量添加10个用户stu01,stu02……stu10,设置8位随机密码(禁止使用for,while等循环)

方法一:
echo stu{01..10}|xargs -n1|sed 's#.*#useradd &;pass=$(date +%N|md5sum |cut -c-8);echo $pass|passwd --stdin &;echo & $pass >>/tmp/pass.log#g'
方法二:
seq -w 10|sed 's#.*#useradd &;pass=$(date +%N|md5sum |cut -c-8);echo $pass|passwd --stdin &;echo & $pass >>/tmp/pass.log#g'

三、用户查询命令

1、id查看用户的信息

2、w显示系统中已经远程登录的用户,以及系统的负载信息

3、last哪个用户在什么时候从哪里远程登录你的系统用户登录的信息

四、sudo临时让用户获得root权限

1、sudo –l查看当前用户的sudo权限

2、visudo给用户授予权限(相当于尚方宝剑)

visudo=====vim /etc/sudoers
①授权某一个命令:
oldboy    ALL=(ALL)       /bin/ls
②授权多个命令
oldboy    ALL=(ALL)       /bin/ls, /bin/rm, /usr/sbin/useradd
③授权某个目录下面的所有命令,排除某一个
oldboy    ALL=(ALL)       /sbin/*, ! /sbin/init
④授权所有命令且不用密码
⑤oldboy    ALL=(ALL)       NOPASSWD:ALL
一般运维人员自己使用的用户

五、记录用户的操作、行为/日志审计

 

六、CDN概念

成功最有效的方法就是向有经验的人学习!
原文地址:https://www.cnblogs.com/yanxinjiang/p/7561991.html