二、shell文件权限和脚本执行

一、认识权限和用户管理

1、查看权限

权限类型:

1、r 读

2、w 写

3、x 可执行

Linux用户

1、所有者(u)

2、所属组(g) (所有者及所有者所在组的全部用户)

3、其他用户(o)(其他组的所有用户(包括文件所有者))

4、所有用户(a)

文件权限解读

文件类型 所有者权限  所属组权限  其他用户权限            所有者  用户所在的组  文件大小  创建时间  文件名

[[email protected] ~]# ll
总用量 100
-rw-------. 1 root root 1752 5月 22 00:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 44184 5月 22 00:28 install.log
[[email protected] ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[[email protected] ~]# head -1 /etc/group
root:x:0:
[[email protected] ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon

二、用户与权限

1、用户管理

(1)、用户查看

 id  username

(2)、用户添加

 useradd  username

创建用户,同时会产生新的用户组,并且用户属于该组

(3)、用户删除

userdel  -r  username 

2、用户组

用户与组的关系:

(1)、把用户加入组

[[email protected] ~]# id test2
uid=501(test2) gid=501(test2) 组=501(test2)
[[email protected] ~]# gpasswd -a test2 root          #把用户test2加入到root组
Adding user test2 to group root
[[email protected] ~]# id test2
uid=501(test2) gid=501(test2) 组=501(test2),0(root)  #test2同时属于两个组

同时属于两个组后,两个组的权限都具备,即两个组权限之和

(2)、把组中用户删除

[[email protected] ~]# gpasswd -d test2 root
Removing user test2 from group root

3、权限分配

第一二种修改过用户对文件的权限

(1)、chmod权限分配

a、字母权限分配

chmod  u+x file

chmod   u-x file

    (对用户单独设置权限用此方式。)

b、数字权限

chmod 755  file

数字对应权限如下:

r        4

w       2

x        1

755        rwx r-x r-x

754        rwx r-x r--

默认644

(当所有用户的权限都要修改时用词方法)

缺点:不能对用户的细化权限分配

 

(2)、acl

权限细化需求

1、root file rw-

2、root file r--

3、other file r--

4、user1 file rw

5、user2 file rx

6、user3 file wx    (不能查看,但是能写入)

7、user4 file rwx  (rwx只是对内容有权限,无法删除)

acl权限分配:

1、setfacl设置文件权限

setfacl -m u:user1:rw file01.txt
setfacl -m u:user2:rx file01.txt 

2、getfacl查看文件权限

getfacl file01.txt  

3、删除文件权限

setfacl -x user:user4 file01.txt

4、清空文件权限

setfacl -b file01.txt           擦除对文件所有的权限(恢复文件的原始状态权限:644)

5、创建和删除文件权限:

#需要对目录设置acl权限即可

setfacl -m u:user4:rwx mnt/

注意:

dr-xr-xr-x.   2 root root  4096 5月  24 14:19 mnt

切换到目录的一瞬间需要目录的x权限,否则不能切换目录。

6、如何对目录及子目录和文件设置acl权限

setfacl -m u:user4:rwx -R /mnt/                R参数代表递归

7、目录中后期添加的子目录和文件如何继承父目录的权限

方法一: setfacl -m u:user4:rwx -R /mnt/     繁琐                       (应用实例:网站文件管理)

方法二:setfacl -m d:u:user4:rwx -R /mnt/         d代表default权限,会继承默认权限

用户对程序、命令的权限

(3)、sudo
设置用户对命令的执行权限-visodo:

1、设置:

# visudo

user4 localhost=/usr/sbin/useradd,/usr/sbin/userdel

2、使用有密码的sudo授权命令

$ sudo /usr/sbin/useradd user5

$ sudo /usr/sbin/userdel -r user5

3、使用无密码的sudo授权命令  (使用情境:在脚本里输入命令)

$ sudo /usr/sbin/useradd user6

$ sudo /usr/sbin/userdel -r user6

设置形式:

user5 ALL=NOPASSWD: /usr/sbin/useradd,/usr/sbin/userdel

sudo  ALL=NOPASSWD: /usr/sbin/userdel -r user4

三、Shell文件权限和脚本执行

1、Shell脚本

(1)、用途:完成特定的、较复杂的系统管理任务

(2)、格式:集中保存多条Linux命令,普通文本文件

(3)、执行方式:按照预设的顺序执行解释执行

2、编写可执行的Shell脚本

(1)、 建立包含执行语句的脚本文件

(2)、 #脚本文件中包含的内容

运行环境设置:#!/bin/bash

注释信息:以#开始的说明性文字

可执行的Linux命令行

(3)、为脚本文件添加可执行权限

3、执行Shell脚本的方式:

(1)、bash test.sh          #不需要写解析器,并且不需要给脚本设置执行权限

(2)、./test.sh                #需要写解析器,需要给脚本设置执行权限

4、一个Shell脚本例子:

#!/bin/bash
#tesh.sh

echo ‘disk space:‘
echo
df -Th
echo
echo ‘free space:‘
free -m
echo
echo ‘users:‘
for i in‘ls /home‘
do
  id -u $i
done

运行Shell脚本:

直接执行具有x权限的脚本文件:例如:./test.sh

使用指定的解释器程序执行脚本内容:例如:bash test.sh 、sh test.sh

5、Shell脚本示例:

 每周五17:30清理FTP服务器的公共共享目录

检查/var/ftp/pub/目录,将其所有子目录及文件的详细列表、当时的时间信息追加保存到/var/log/pubdir.log

文件中,然后清空该目录

yum -y install vsftpd*

#!/bin/bash
#ftp目录统计

date >>/var/log/pubdir.log

ls -lhR /var/ftp/pub >>/var/log/pubdir.log

rm -rf /var/ftp/pub

命令执行通过后即可添加到任务计划中:

crontab -e   

查看任务计划:

crontab -l
时间: 2024-10-05 05:01:55

二、shell文件权限和脚本执行的相关文章

02. Shell文件权限和脚本执行(更改权限)

Linux 有三种权限更改方式:chmod/acl/sudo 前两者用来更改文件权限,sudo用来更应用程序或者是命令的执行权限 chmod的局限是无法实现多种权限分配(用户群体只有三种),面对多权限时需要用ACL进行设置 Chmod chmod (agou)(+-)(rwx) filename agou 表示文件权限更改影响的范围,分别代表all, group, others, user +-表示增加或者删除权限 rwx表示具体的权限类型 chmod a+x test.txt 表示给test.

shell文件权限和脚本执行

一.权限管理 1.查看文件属性 ls -l 2.权限类型 二.linux用户与权限 1.用户管理 ①查看用户 id user1 ②添加用户 useradd user1 ③删除用户 userdel -r user1 1.用户组 ①新建组 groupadd g1 ②删除组 groupdel g1 ③把用户加入组 gpasswd -a user1 g1 ④把组中的用户删除 gpasswd -d user1 g1 3.权限分配 sudo 三.用户与文件的关系-权限 1.chmod权限分配 ①chmod

linux笔记:shell基础-概述和脚本执行方式

什么是shell: linux使用的默认shell是Bash: shell脚本的后缀名为.sh,shell脚本的第一行#!/bin/bash 不是注释,而是标识这是一个shell脚本,因为linux并不靠后缀名来识别文件: 如果执行shell脚本:

Shell文件权限-1

原文地址:https://www.cnblogs.com/zxljoshua/p/9170307.html

在Windows下生成的shell文件在上传到Linux上发现无法执行

为了批量生成shell文件,我在Windows下用knime循环生成一批shell文件,在上传到Linux上执行时发现报错: [[email protected] Stock]$ ./f_wdt_outsource_outbound_header.sh -bash: ./f_wdt_outsource_outbound_header.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 [[email protected] Stock]$ 在将shell文件内的代码完全复制到一个新建的

Linux基础-管理用户和文件权限

(一)用户和组 用户账号: 超级用户:root用户 普通用户:由root用户或其他管理员创建,只在自己宿主目录中有完全权限 程序用户:不允许登录到系统,如:bin.daemon.ftp.mail 组账号:一个用户至少属于一个组,称为该用户的基本组.如果该用户同时属于其他组,这些组被称为附加组 UID.GID:用户标识号.组标识号,在配置文件"/etc/login.defs"中 root用户为0.程序用户1-499.普通用户500-60000 一.用户管理 用户账号文件: /etc/pa

文件权限——Linux基本命令(8)

1.文件权限 (1)权限分类 文件的权限主要针对三类对象进行定义: owner: 属主, u group: 属组, g other: 其他, o 每个文件针对每类访问者都定义了三种权限: r: Readable w: Writable x: eXcutable (2)权限定义 普通文件和目录文件对于权限的定义不太相同: 普通文件: r: 可以读取文件的内容 cat less more nano vim 执行脚本 w: 可以修改文件的内容 nano vim > >> tee gedit x

第2天:Linux系统的文件权限和基本指令

一.文件路径的表示方法 windows下, c:\Hjing\test.txt Linux下,/Hjing/test.txt 相对路径表示方法 cat test.txt  -> 默认是当前目录下的文件,如果不加以说明 cat ./test.txt 明确指定,a.txt在当前目录下 cat ../Hjing/test.txt 明确指定,test.txt在上一级目录Hjing子目录下 绝对路径表示方法(总是从根目录开始) /Hjing/haha/test.txt windows下文件名不区分大小写,

第5章 用户身份与文件权限

章节简述: 详细的为读者讲述了用户.用户组和其余人在系统中的不同身份与能力,以及文件的读(r)写(w)执行(x)权限的作用. 为了让系统更加的安全还需要学习SUID.SGID和SBIT的文件特殊权限,文件隐藏权限以及ACL访问控制列表. 学会su命令和sudo服务后一定能够满足您以非超级用户操作实验或日常工作的需求,同时也保证了系统的安全性. 本章目录结构 5.1 用户身份与能力 5.2 文件权限与归属 5.3 文件的特殊权限 5.4 文件的隐藏属性 5.5 su命令与sudo服务 5.6 文件