脚本编程大全: 第七章 理解文件限权

7.1.1 /etc/passwd文件

每条记录个字段:

  1. 用户名
  2. 密码
  3. UID
  4. 组UID
  5. 账户文本描述 (备注)
  6. 用户HOME目录
  7. 默认shell

在这里插入图片描述

7.1.2 /etc/shadow 文件

每条记录都有9个字段:

  1. 与/etc/passwd 对应的密码
  2. 加密后的密码
  3. 上次修改密码后的时间
  4. 多少天后才能更改密码
  5. 多少天后必须更改密码
  6. 过期多少天前向用户提醒更改密码
  7. 密码过期多少天后禁用账户
  8. 被禁用的日期(从1970/1/1到当天)
  9. 预留

在这里插入图片描述

7.1.3 添加新用户

用户创建时默认的信息被设置在 /etc/default/useradd中,添加-D参数以查看

  1. 新用户被默认添加到100组
  2. 新用户HOME目录位于/home/logname
  3. 密码过期后不被禁用
  4. 未设置过期日期
  5. 默认shell为/bin/sh
  6. 系统复制/etc/skel目录下文件到HOME目录下
  7. 系统为该用户在mail目录下创建一个接收邮件的文件

在这里插入图片描述
注6:/etc/skel文件配置了bash shell环境的启动文件
在这里插入图片描述

useradd -m username   # 创建用户   -m 参数 在HOME文件夹下添加username文件夹,拷贝/etc/skel文件中的数据到此

在这里插入图片描述

useradd -D -s /bin/bash    #更改新建用户的默认值

更改默认值的参数

-b default_home 更改默认的创建用户HOME目录的位置
-e expiration_date 更改默认的新账户的过期日期
-f inactive 更改默认的新用户从密码过期到账户被禁用的天数
-g group 更改默认的组名称或GID
-s shell 更改默认的登录shell

7.1.4删除用户
userdel user_name 
userdel -r user_name   # -r参数表示同时删除用户和目录 
7.1.5修改用户
usermod -l new_name temp_name #更改用户名 (无法更改当登录的用户名 )
passwd #用户密码更改 
chpasswd  #批量更改用户密码
chsh -s  new_shell  user_name   # 更改登录shell
chfn   #更改用户备注
chage   # 更改密码过期日期


7.2 使用linux用户组

组信息被存储在/etc/group文件中

每条记录四个字段:

  1. 组名
  2. 组密码 允许非组成员通过密码临时成为组成员
  3. GID
  4. 属于该组的用户列表

在这里插入图片描述
Tips:当某个用户在/etc/passwd中被指定某个组为默认组时,账户不会作为组成员在/etc/group中出现

7.2.2 创建新组
groupadd group_name
usermod -G group_name  new_user  # 添加用户入组

7.2.3修改组
groupmod -n new_name  temp_name

7.3理解文件限权
7.3.1使用文件限权符

ls命令列出的对象类型

“-” 文件
d 目录
l 链接
c 字符型设备
b 块设备
n 网络设备

7.3.2默认文件限权
		Tips:文件的全权限为666,目录的全权限为777。
#umask 表示想要屏蔽掉的限权
#eg:
umask   #0022
touch file 
ls file #666-022  =>644   对于其他用户,只有rwx中的r只读限权

7.4改变安全性设置
7.4.1改变限权
#两种方式 
chmod 777 newfile

chmod o+x newfile    # u g o a  用户 组 其他   所有 
chmod o-x  newfile  

7.4.2更改所属关系
chown new_owner(name or pid) fine_name   # 更改所有者
chown new_owner.new_group file_name   #同时更改所有者 和 所属组
chgrp  new_group file_name
Tips:只有root用户可改变文件的属主,属主可改变文件的属组,前提是属主同时属于原属组和目标属组。
7.5共享文件

ques:用户u在公共目录d创建了文件f,文件f的组正常情况下属于用户u的默认组,其他非该组用户无法访问。要解决这个问题,可以将目录设置为,该公共目录下所新建的文件,所属组就是该目录的属组。

Linux为每个文件和目录存储了3个额外的信息位,它会加入到标准3位8进制前,组成4位8进制,或者以符号形式的s表示。

  1. 设置用户ID(SUID):文件被用户使用时,程序会以文件属主的限权运行 ???
  2. 设置组(ID):文件会以文件属组的限权运行??? 目录新建的文件会以目录默认属组作为默认属组
  3. 粘着位: 进程结束后文件还会驻留(粘着)在内存中。

在这里插入图片描述

mkdir text 
chgrp aim_grp text     
chmod g+s text    
umask 0002    #不屏蔽组限权   不然即使改了组,也跟other一样的限权
cd ./text 
touch file     #file 所属组同text为 aim_grp 
ls -l file    

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值