每日一学之Linux学习(五):linux用户体系和文件权限

我自己在刚开始学习时有一个困扰,就是我新建一个user和新建一个group,为什么在/etc/group文件中两个名字都会出现在组中,另外我都可以通过su username   su groupname 形式切换,后来我发现其实无论你用useradd 还是groupadd 创建用户或者组,其实都可认为时创建了一个username ,如果你把其他用户放到username下面,这个时username其实也是groupname了。

因为useradd 的定义是:不加参数创建用户时创建一个与用户同名的用户组

但是如果使用命令 useradd -g root zhang5 这种直接给到root用户组的方案,则在group中不会看到有zhang5这个组,同时我发现zhangp5这个用户的权限是正常的,但是并没有立即显示在/group 中的root后面,手动命令行增加就会立即有了

后来查阅了资料和实验对比应是-g只修改了/passwd文件,并未修改/group,所以/group中未显示,同时,gpasswd命令报not a number

/etc/group 、/etc/passwd 、/etc/shadow  /etc/gshadow的关系

1、与用户(user)和用户组(group)相关的配置文件;


1)与用户(user)相关的配置文件;

/etc/passwd 注:用户(user)的配置文件;
/etc/shadow 注:用户(user)影子口令文件;


2)与用户组(group)相关的配置文件;

/etc/group 注:用户组(group)配置文件;
/etc/gshadow 注:用户组(group)的影子文件;

 

/etc/passwd 注:用户(user)的配置文件;

其中由7段组成,每段间以:分隔,每段含义如下

用户名    用户密码    用户ID    组ID    备注    家目录    启动shell
root    x    0    0    root    /root    /bin/bash
用户密码与上面的组密码类似,都是为了与早期版本兼容而均显示为x,实际的用户密码加密后将加密值存储在etc/shadow文件中,即接下来要介绍的一个文件
用户ID必须为非负数,同时0固定为root用户,1~499为系统保留用户,一般500以上为普通用户
备注为一行不含空格的字符串,用于简要表明该用户的信息
启动shell为从该用户登录系统后所使用的shell程序,常用的shell有sh csh ksh tcsh bash等等,默认情况下为/bin/sh,该段也可以为一个程序如python等,这样从该用户登录系统后只能运行该程序,结束后退出

/etc/shadow 注:用户(user)影子口令文件;

由8个:分割成9个字段,每个字段定义如下

用户名    加密值    最近密码修改时间    密码最短使用天数    密码最长使用天数    n天前提示密码即将过期    密码非活动天数    密码额定日期    保留字段
root    $id$salt$encrypted    17051    0    99999    7            
对部分字段的说明:

加密值:上表中$id$salt$encrypted并不是实际显示在文件中的值,而是由两个$符号隔开的三个字段
 

/etc/group 注:用户组(group)配置文件;

该行由四段组成,每一段间以:区分,每段含义如下:

组名称    组密码    组ID    组成员
root    x    0    
其中组密码均显示为x,在unix的早期这里是直接显示明文密码的,后来出于安全考虑使用加密算法进行加密,并将加密后的值单独使用一个文件进行保存
组成员如果显示空缺则该组只有一个用户且用户名与组名相同,如果该组有多个用户,则该字段显示所有的用户名,中间以,隔开
这句话验证了我开头说的话

useradd

useradd -n -G root,fly zhang12 建立一个属于root和fly用户组的账号,同时不要创建zhang12这个用户组
参  数:
-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。 
-d<登入目录>  指定用户登入时的启始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组(只能一个)。
-G<群组>  指定用户所属的附加群组(可以多个)。
-m  自动建立用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s   指定用户登入后所使用的shell。
-u  指定用户ID

 

userdel

这里要注意,有时候我们删不掉,会报错,一般是因为这个用户刚登陆过,关闭sshd进程,然后重新进入系统,就删除了

userdel -r name 可以同时删除/home/name 目录

-f  删除用户登入目录以及目录中所有文件

usermod

usermod  -a  -G groupname username 这样是append(附件)形式到新的组中,仍然会在原来的组中

groupadd

类似于 useradd

groupdel

类似于 userdel

groupmod

类似于 usermod

groupmod -n newname oldname 

gpasswd

类似于 passwd

gpasswd -d 用户名 用户组名从用户组删除用户

passwd

该命令一般只能由root用户来执行,主要注意的是在实际应用中,有些密码需要定期更换,可以使用下面的参数

-l 锁用户
-u 解锁用户
-n 天数  密码不可改天数
-x 天数  密码过期天数
-w 天数  警告天数

文件权限

其实很简单,第一是文件类型,d表示文件类型是文件夹,-就是普通文件,2-4 表示拥有者权限,5-7表示拥有者所在组的权限,8-10表示其他用户的权限,第一个root就是拥有者,第二个root表示的是拥有者所在组的信息

chmod

chmod + x / +w / +r  filename

或者直接 chmod  777  /  775  filename这种数值的方法也可以

chown

修改拥有者

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值