用户管理相关文件
家目录就是初始登录位置,用户在家目录拥有所有权限
如上图因为普通的读写执行权限对root来说没用,所以写什么权限都可以上传下载。
家目录是添加一个用户的同时自动生成的,不需要手工处理。
Linux是通过提示符来判断当前是超级用户还是普通用户,如下图白行的标识符是#,代表是超级用户,如果是$代表是普通用户
PS:如果将普通用户变为超级用户,它的家目录并不会更改,还是原先的,只是权限变了。
邮箱添加用户的同时自动就有了,上图为邮箱位置
/var/这个目录是Linux中可变数据保存位置
参考下图,比如新建一个用户进入其家目录,ls
发现它是空的,但是ls -a
可以发现其隐藏文件,这些隐藏文件并不是我们添加用户时手工创建的,而是这个用户添加的同时自动创建的。自动创建的拷贝位置就是上图的/etc/skel
这个用户模板目录。
也就是说,如果想让所有用户一添加,他默认在家目录下就出现某一个文件,比如警告信息看下图,
PS:添加用户的时候不设密码的话这个用户没有添加完整
用户管理命令
useradd
如上图,不建议手工添加,建议就用系统默认
如上图,useradd以后默认做上图第二行到最后一行操作,如下图
上图EXPIRE如果没有值就证明了它永远默认不失效,或者靠前面定义的密码失效时间来失效。
上图groupid=100,即用户默认添加到组ID为100的组里面,但现在不是这样,因为groupID = 100实在公有模式这样,私有模式不这样,现在Linux默认都是私有模式。私有欧式用户添加时不是这样设置,而是创建同名的组。
可以发现在上图只定义了shadow文件的第七八个字段,shadow其他字段在这里没有定义。定义在下图处
第一行后面(5)的意思是第五个字段
下图为 vim /etc/default/useradd
的结果
下图为vim /etc/login.defs
所以由上可知,useradd添加用户缺省的值(默认)是在上图两个文件,/etc/default/useradd 和 /etc/login.defs
passwd
如下2图,passwd直接回车代表给当前用户设置密码,下图为root,这个方法一般给普通用户用,普通用户不能直接passwd指定用户名,只能改自己的
如下图,锁定用户kk后vim /etc/shadow
,看白色那行,kk的密码前多了2个!,!!
的意思是默认这个用户没有密码。当然也可以手工添加和删除,只能root来做。
上图的方法主要在shell编程时用,比如要批量添加100个用户,直接给每个用户设置一个默认的初始密码,这样做的问题是每个用户的密码都是明文,要求每个用户登录之后改密码。
usermod 和 change(modify是修改的意思)
如下图,useradd能用的选项,usermod都可以,一样的。他们的区别是useradd添加一个新的用户的同时修改它的相关选项,usermod是修改一个已经存在的用户的相关选项。
然后vim /etc/passwd
如下图,可以看到kk用户的用户说明里有hello world
然后看下图第一行是vim /etc/group
,kk已经添加到root组里
如下图,执行usermod -L kk
以后打开 vim /etc/shadow
,看kk那一行,密码前多了一个!
如下图是执行命令usermod -U kk
后打开vim /etc/shadow
后,kk用户密码前!被去掉了
——————————————————————————
相比上上图哪些选项,还不如手工修改shadow,上上图的选项完全不用记。那为何要学习chage?关键点在下图
userdel (删除用户)和 su(用户切换命令)
一般删除用户的时候都要加-r,把家目录删掉
如下图,可以看到yangmi的家目录消失了
如上图这样切换看起来很好,但很多错误就是因为su命令这么执行而产生的,
执行命令env
即查看环境变量的命令,结果如下图(PS:环境变量可以理解为这个用户所当前操作的环境, 比如Windows的环境是图形界面,分辨率,背景图像,桌面的图标这些,Linux的环境主要指的是相关的操作的一些环境, 比如当前登录的用户是谁,当前的家目录是谁,)
如上图白线可以看到,当前系统识别为当前登录用户为kk,而且mail也是kk的邮箱,家目录也还是kk的家目录,出现这些原因是因为没有敲选项-
,这个选项绝对不能省略
切换用户的时候用命令exit
切换回去,如下图
然后下图为执行命令su - root
普通用户切换为root要输入密码,普通用户切换为普通用户也要输入密码,但root切换为普通用户不需要输入密码,直接切换。
如上图第二个命令,不切换成root,只是借用root身份执行一次useradd命令(useradd只要root能用),
用户组管理命令
最好不要改组名组ID,因为改了以后后续很多东西都要改。比如邮箱地址,家目录名字,所有者之类的,还不如把用户/组删了新建一个
初始用户跟组的关系是相互依存的,如果没有初始组这个初始用户不能存在,所有如果组当中有初始用户存在,这个组不能删。因为删了这个用户没地方可放
如果组里面不是初始用户而是附加用户,不影响组的删除。
如果删除有初始用户的组会报错,如下图
所以想删除这个组要先把里面的初始用户删掉。用下图的命令
当然gpasswd
操作的是附加用户,
当然也可以直接在上图最后一个字段手工把用户加到组里,Linux的命令归根结底都是写入相对文件,所以直接改文件肯定可以,直接改文件更好记,记命令容易记混