第四节 Shell文件权限和脚本执行

一.文件权限

一.linux 中的有几种权限:

1.r 读
2.w 写
3.x 执行

二.linux用户有几种:

1.所有者 (u)
2.所属组 (g)
3.其他用户 (0)
4.所有用户 (a)

三.文件权限:

-rw-r–r– root root 0 Oct 19 12:21 shell.txt
- 1.所有者(root用户)对shell.txt具有rw(读写)的权限
- 2.所属组(root组内的用户)对shell.txt具有r(只读)的权限
- 3.其他用户(root组以外的用户)对shell.txt具有r(只读)的权限

四.用户管理:
  • 1.查看用户 id user1
  • 2.用户添加 useradd user1
  • 3.用户删除 userdel -r user1
  • 4.修改密码 passwd user1
五.组管理:
  • 1.新建组 groupadd grp1
  • 2.删除组 groupdel grp1
  • 3.查看组信息 cat /etc/group
六.用户与组
  • 1.把用户添加如组 gpasswd -a user1 root
  • 2.把用户从组内删除 gpasswd -d user1 root
七.chmod权限分配
  • 1.chmod字母权限分配: chmod u+x file #对用户单独设置权限
  • 2.chmod数字权限 :chmod 755 file #对所有用户设置权限
八.acl权限分配
  • 1.setfacl 设置文件权限
    setfacl -m u:user1:rw root.txt
    setfacl -m u:user2:rwx root.txt
  • 2.getfacl 查看文件权限
    getfacl root.txt
  • 3.删除文件权限
    setfacl -x user:user3 root.txt
  • 4.清空文件权限
    sertfacl -b root.txt
  • 5.创建和删除文件权限: 需要对目录设置acl权限即可
    setfacl -m u:user4:rwx /mnt
  • 6.如果对目录以及子目录和文件设置acl权限
    setfacl -m u:user4:rwx -R /mnt/
  • 7.目录中后期添加的子目录和文件设置acl权限
    setfacl -m d:u:user4:rwx -R /mnt/
九.sudo

设置用户对命令的执行权限-visudo:
- 1.设置
visudo
user4 localhost=/usr/sbin/useradd,/usr/sbin/userdel
- 2.使用有密码sudo授权命令
sudo localhost=/usr/sbin/useradd/ user4
sudo localhost=/usr/sbin/userdel -r user4
- 3.使用无密码的sudo授权命令
sudo localhost = NOPASSWD: /usr/sbin/userdel -r user4
sudo ALL=NOPASSWD: /user/sbin/userdel -r user4

二.脚本执行

一.执行shell脚本的方式:
  • 1.bash test.sh

    • 不需要写解析器
    • 不需要给脚本设置执行权限
  • 2../test.sh (推荐)

    • 运行环境设置:需要写解析器 #!/bin/bash
      注释信息:以#开始的说明性文字
      可执行的Linux命令行
    • 需要给脚本设置执行权限 chmod a+x test.sh
二.应用事例

题目:每周五17:30清理FTP服务器的公共共享目录
提示信息:检查/var/ftp/pub/目录,将其中所有子目录
及文件的详细列表,当时的时间信息追加保存
到/var/log/pubdir.log日志文件中,然后清空该目录

vi /opt/ftpclean.sh
#!/bin/bash
date >> /var/log/pubdir.log
ls -lhR /var/ftp/pub >> /var/log/pubdir.log
rm -f /var/ftp/pub/*

crontab -e
30 17 * * 5 /opt/ftpclean.sh

版权声明:本文为DarkAngel1228原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。