用户是用来进行安全设定的
组是用来共享权力的
附加组:可以决定权限,不一定要有附加组
初始组:无法决定权限,一定有,不能更改
用户在系统中以表格和表格中的一系列字符出现的
/etc/passwd 用户信息文件位置
用户名称 主机名称=(执行程序身份)命令
(以:号为分隔符)
用户名称:密码:用户id(唯一的身份证号):组id:用户说明:用户家目录(用户出现的默认地址):用户默认使用的shell
此处说一句题外话(用户的id默认是从1000开始,因此此处示例新建的用户id为1001)...
/etc/group 用户组信息
组名称:组密码:组id:附加组成员(这些组暂时没有附加组成员,因此后面为空)
/home/username 用户家目录
/etc/skel.* 用户骨文件(用户环境配置模版,用户建立时会自动被复制到家目录中)
cat /etc/shells 可以查看linux下有哪些shell,
其中sbin/nologin和usr/sbin/nologin 是默认系统启用的,创建的用户默认无法使用
whoami 查看当前用户的名称
id username 查看用户的id信息
id -u username 查看用户的uid
id -g usernmae 查看那用户的初始组id
id -G username 查看用户的附加组id
id -n username 以名称显示信息
先输入这一行命令来监控passwd和组信息
watch -n 1 'tail /etc/passwd /etc/group ;echo=====;ls -l /home/'
可见在passwd最后一行,是我在另外一个shell命令窗口下敲下useradd linux所创建的用户,右上角的时间可以证明确实是每一秒钟刷新一次,而不是页面固定一成不变^_^
在添加用户时,要先想到这个用户的初始组我要放在那里(如果你想放在一个指定的组,但这个组又没有的时候,那就要首先添加一个组,然后再创建用户)
watch -n 1 每秒钟显示一次
此下操作都是在root用户下操作
userdel username 删除用户
userdel -r username 删除用户及所有信息
useradd username 使用默认规则建立用户(规则查看/etc/login.defs)
useradd -u username 用户的uid
useradd -g username 指定用户的初始组id
useradd -G username 附加组
useradd -c username 说明文字
useradd -d username 家目录(不要放在/mnt下,因为这个目录不可被写入,但可以再/mnt下先创建一个目录,再放在这个目录下)
userddd -s username 制定用户的shell(系统可以用shell可在/etc/shells中可以查看,不能自己随意写)
以上都只是在创建的时候指定特定的某一点,还可以进行多个点的指定,例如:
useradd -u 1234 -g 4321 -G 2233 -c "" -d /home/linux -s /bin/ bash linux
创建了一个id为1234,初始组id为4321(初始组id必须之前就存在,就像你必然出生在一个家庭中,不可能说你出生了就是一个人,最少还有母亲)附加组id为2233(类似你的初始组是你家这个组,但是你还可以加入别的组)说明文字为空,家目录为/home/linux shell指定为bin/bash,用户的名字叫linux
groupadd groupname 建立组
groupadd -g 建立组,并制定组id
groupdel groupname 删除组
异常操作:
1.当你删除时没有执行的时userdel username,而中间没有加入-r时,只会删掉该用户的基本信息(默认创建的除外),配置文件还存在,这时会再执行命令后报错,上面会显示一些目录,显示哪个目录,说明配置文件在哪些目录下,删除掉这些目录就算是删除干净了
2.当你在删除一个用户时,发现shell报错,显示当前用户正在启用着一个进程(例如2333端口正在执行该用户的进程),可以使用下面的命令
kill -9 2333强制结束某一个进程
再重新打开shell,再次进行删除用户操作
进入一个你所创建的用户中,但如果你想退出这个用户:ctrl+d,longout,exit
man useradd 查看useradd手册
usermod -l linux westos 修改用户的名称
usermod -u 666 westos 修改用户的id为666
usermod -g 6666 (要存在)westos 修改用户的初始组id为6666
usermod -G 7676 westos 修改用户的附加组为7676
usermod -aG 25 添加用户的附加组25
usermod -G "" westos 删除掉所有的附加组
usermod -c test westos 添加westos的备注信息为test
usermod -d /home/lee westos 修改家地址为lee,但是实际的文件名不会发生变化
usermod -md /homelee westos 修改家地址为lee,同时世纪的文件名也会发生变化
usermod -s /bin/tcsh westos 修改westos的shell的方式为tcsh
su - username 进入username用户中(超级用户进入普通用户是需要密码的
低级用户切换到高级用户或者切换到平级用户是需要后者密码的)
“注意:”
1.用户切换后需要及时退出在切换到下一个用户
2.su - 表示切换用户身份以及用户环境
echo $PATH 搜索环境变量的位置
watch -n 1 tail /etc/shadow 监控每一秒钟显示一次用户的认证信息
/etc/shadow用户的认证信息
用户监控认证信息
用户名称:
用户密码:
本机中使用的是md5 sha512 典型的对称加密(加密和解密使用同一种字符) 在vim /etc/login.defs里可以查询
passwd username 只有超级用户可以执行(修改普通用户的密码,不加用户名则默认修改超级用户自身的密码)
(题外话:超级用户修改密码不需要输出之前的密码,可以直接进行修改,这是因为在权限下的设定是这样的)
passed -d westos 解除密码
usermod -L 冻结帐号 强度弱
usermod -U 解锁帐号 强度弱
passwd -l 冻结帐号 强度强(执行命令后会像下图出现两个!!,其中两个表示冻结强度高,一个表示强度弱)
passwd -u 解冻帐号 强度强
上图中17753:0:99999:7:::的表示如下
1.密码最后一次被修改的时间:(表示距离1970年一月一号的时长)
当此位数字为0时,用户在登陆系统时会被强制改密码
chage -d 0 westos
passwd -e westos
2.密码最短有效期:
chage -m 1 westos
passwd -n 3 westos
3.密码最长有效期:
chage -M 30 westos
pass -x 40 westos
4.密码过期警告:
chage -W 2 westos
passwd -w 3 westos
5.密码非活跃期:
chage -I 2 westos
passwd -i 0 westos
如果写-1,则清除
6.帐号到期日:
chage -E “2018-11-11” westos
7.未设定用户自定义
之前先创建了一个纯净的linux普通用户,想让这个用户可以拥有超级用户的权力来创建一个普通用户
这是使用linux普通用户来创建用户时的操作,可以看见会显示没有权限不能创建,所以我们要进行下面的权利下发操作
1.配置文件
/etc/sudoers
2.配置命令
vim /etc/sudoers 此命令不提供语法检测,你写进去什么就是什么,(能不能执行我不会管)
visudo 此命令(和上面的命令作用一样,都是打开配置文件)但还提供语法检测
这是我打开文件后在第102行随便加入的错误命令
可以看到,在:wq保存退出后,会显示上图提示,报错并显示多少行,这时键入e,进入文件重新编辑
用户名称 主机名称=(执行程序身份)命令 当执行命令时需要进行身份验证
(主机名可以通过hosthome命令来进行查询)
linux localhost.localdomain=(root) /user/sbin/useradd(这就赋予了linux这个普通用户使用超级用户才能使用的useradd命令权限)
用户名称 主机名称=(执行程序身份)NOPASSWD:命令1,命令2 当执行命令时不需要用户验证
输入命令保存退出,配置完成.
配置完成后在shell上测试:
su - linux 切换用户到之前创建好的普通用户linux
sudo useradd hello 用linux就可以执行命令来创建一个hello的普通用户