用户、组和权限的管理
Linux如何像Windows系统那样,可以不输入密码直接进入图形界面?那么如何如何自动登录图形界面呢?这就要用到编辑配置文件:
nano /etc/gdm/custom.cof ,在里面加上
automaticLoginEnable=true
automaticLogin=root
退出之后重启系统会自动登录图形界面
上述的操作不可能自发的进行下去,还需要靠用户来进行操作。用户也就是user:拥有token,identity等权限令牌。Linux用户身份的识别,即为用户(username)的id号,用UID来表示;系统的管理员默认为:root,ID=0;但是ID=0就一定是管理员,而root并不一定是管理员,系统给予管理员的定义是ID=0(也就是一个看身份证来判别,而不是看脸识别)。至于普通用户的UID:1-65535
在默认情况下系统用户UID:1-499(CentOS6);1-999(CentOS7);这些ID是给系统中的一些进程,程序来使用的 ,对守护进程获取资源进行权限分配。
而普通的登录用户UID:500+(CentOS6),1000+(CentOS7)
组group:组也有自己的id,即所谓的groupname/GID,组中的用户可以继承组的权限(加入组织,对里面的统一授权,获取执行或者其他权限)
注意: Windows不允许组和用户重名,linux可以
每个用户在创建的时候必然有一个组,这个组就是主组,并且只有一个(和windows一样),而在主组中又有给组分配的id号
管理员组GID:root,0
系统组GID:1-499;1-999 普通组:500+,1000+
Linux组的类别
用户的主组:有且仅有一个,若组名同用户名,且只包含一个用户则是私有组
用户的附加组(辅助组):一个用户可以属于0或多个辅助组(身兼数职)
命令:getent group 查看用户组的信息 getent passwd USER只看用户信息
getent gshadow 查看用户组的密码信息
Linux 用户和组的主要配置文件:
①/etc/passwd(文本文件):用户及其属性信息(名称、UID主组ID)
cat /etc/passwd:
上面的root:x:0:0:,mage,110,119:/root:/bin/bash,分别对应下面的:
用户帐号名称:密码:UID:主组GID:描述信息(用chfn可以修改描述信息,finger可以看描述信息):家目录:shell类型(chsh –s /bin/csh 用户名,可以该用户的shell为csh ,也可改为系统账号nologin)
注意:若把其中用户ID改为0,root改成其他,那这个用户就成为管理员,但是没有管理员的话系统就无法启动了(没有用户ID为0)
插入查帮助的命令:比如说查passwd ,用man就要知道查帮助的章节,而用whatis passwd可以查passwd的章节,在用man就可以查到passwd的相关信息。
②/etc/group:组及其属性信息
cat /etc/group:
上面的bin:x:1:bin,daemon,gentoo,分别对应下面的:
用户的主组名:主组的密码:主组的GID号:附加组的所有成员(可以用 groupmems -l -g GROUPNAME,来查看组的其他成员;groups USERNAME 查询用户属于什么附加组;id USERNAME也可以查看用户的ID信息)
③/etc/shadow:用户密码及其相关属性
cat /etc/shadow:
上面的natasha:$6$pCnil/79r2d/$wm8vNDPbg2.FKXepRjvgKvEy7JKJJeCsY9uHxuC/QvPa6p4Bj9f/rhkEUGsmlltsKpQnMlVANt8sE2SU25auN.:17096:0:99999:7:::,分别对应下面的:
用户的帐号名称:用户密码:最近更改密码的日期:密码不可被更改的天数:密码的使用期限:密码需要更改期限前的警告天数:密码过期后的宽限天数:帐号失效日期:保留用以更新的。可以把下图作为参考
注意:后面关于密码的天数都是相对于最近更改密码的日期,密码是乱码,$6表示sha512加密算法 $1表示md5加密算法已经被破解了 $5表示sha256的加密算法,因为加盐了,所以即便是相同的密码也显示密码项的乱码不同。
其中的!!表示禁止登录(可以用usermod –U USERNAME来解锁,去掉!,默认为!!,如果只有一个!,可能用户误打误撞的解锁了;usermod –L USERNAME来锁定用户)
④/etc/gshadow:组密码及其相关属性
cat /etc/gshadow:
上面的admins:!::natasha,harry,分别对应下面的:
用户组的名称:用户组密码:用户主组GID:辅助组
命令:pwunconv:密码不转换,早期可以看到用户密码的加密乱码状态
Pwconv:密码转换,以x的方式显现
cat /etc/default/useradd
可以显现默认家目录;默认口令有效期;过期后口令的宽限期;默认的shell类型;默认创建邮箱(邮箱是一个文本文件);默认skel,创建用户时默认家目录下创建的文件是从/etc/skel 下拷贝过来的)
注意:有复制/etc/skel 下的所有配置文件的话不能用 cp -r /etc/skel/.* . (因为.*包含..这样的结果就会是把/etc/下的所有文件都复制过来了,所以要用cp -r /etc/skel/.[^.]* .复制。
用户和组的管理命令
useradd :adduser的指向文件(链接文件) 【选项】 用户帐号名
-u:指定UID 可以为0 ,也可拥有root权限,登录拿着管理员的令牌(ID=0),只要没注销就有root权限 ;
-s :后接shell的实际文件,如/bin/bash ;/bin/csh ,改变shell类型
-c:描述信息,用双引号,可用finger USERNAME查看描述信息。
-g group1:把新增用户加入group1组,这个group1也就成了用户的主组
-d dir1 E :把新增用户的家目录指定在dir1(原不存在的)中;
-G GROUP1,GROUP2…:用户加入到自己的辅助组GROUP1,GROUP2…中
给服务用一般用useradd –s /sbin/nologin (默认不登陆) –r(给服务的系统帐号)服务名
usermod 【选项】 用户帐号名
-u #:更改用户UID为#
-g group1:把新增用户加入group1组,这个group1也就成了用户的主组
-G GROUP1:更改辅助组为GROUP1 -aG GROUP2:增加一个辅助组 -G “”:清空家目录
-d dir1 –m:把用户家目录指定为dir1(原不存在),并把家目录里的数据一同复制到dir1里
-l NEWNAME OLDNAME:仅更改为新名字;
-L:锁定用户,在/etc/shadow密码栏增加! -U:解锁用户,把/etc/shadow密码栏!拿掉;
userdel:不删除用户的家目录和邮箱
-r:删除用户的家目录和邮箱
组帐号维护命令
groupadd
-g GID:指定用户的组ID ;-r:创建系统组<500
groupmod
-n GROUPNAME:改新名字 ;-g GID:指定新的GID
groupdel 删除组
简单应用:由于系统更新需要把用户帐号迁移到一个新的主机,如何批量创建帐号?
如从6到7 :只要是/etc/passwd的文件格式定义,就只需使用newuser user.txt来创建,但是创建的user.txt 中用户的密码是随机生成的,需要自己修改;批量修改口令nano p.txt 编辑对应 |(管道)chpasswd 这样批量改密码,这样也就自己创建了家目录,但是没有/etc/skel拷贝过来的配置文件,需要自己配置。
su切换账户的方式:
su USERNAME:非登录式交换,即不会读取目标用户的配置文件,不改变当前工作目录; su – USERNAME:登录式交换,会读取用户的配置文件,切换至家目录,完全切换。
passwd修改自己的密码
-l:锁定用户 ; -u解锁用户 ;-e强制用户下次登录修改密码;
newgrp GROUP1临时切换主组GROUP1,但是创建的文件的主组是GROUP1,即使是登出后,登出后恢复主组。如果用户本不属于此组,则需要密码(口令为空直接不能进去)
gpasswd
-a User GROUP:将User添加到指定组中
-d User GROUP:将User从指定组中删除
-A User1,User2…设置有管理权限的用户列表
其它命令
chage 【选项】帐号名; 可以更改/etc/shadow的最长时间,最短时间,警告时间的选项
-l:列出帐号的详细密码参数
-d:最近一次更改密码的时间 ,格式 YYYY-MM-DD
-m:密码的最短保留天数
-M:密码的最长使用天数
-W:密码过期前的警告天数
-I(大ai):密码的失效日期
-E:账户失效日期 ,格式 YYYY-MM-DD
vigr =vi /etc/group,修改组的相关属性
vipw=vi /etc/passwd,修改用户的相关属性
pwck:检查用户的相关属性是否有问题
grpck:检查组的相关属性是否有问题
原创文章,作者:lyx,如若转载,请注明出处:http://www.178linux.com/53859
评论列表(1条)
师哥写的不错,师弟佩服得五体投地