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.txt的所有使用者增加执行权限
  • chmod a-x,a-w test.txt 表示去除所有人执行和更改test.txt的权限

chmod XXX filename

  • 三类用户一起设置,第一个X代表所有者,第二个X代表所属组,第三个X代表其他
  • r(4) w(2) x(1): chmod 755 test.txt 给test.txt的owner设置rwx的权限,给其他所有用户设置rx权限因为要计算每一种用户的权限,多用于批量处理权限。对用户单独设置权限多用英文,而非数字

权限细化的问题,chmod最多只有三个权限组,当有多个用户,并且每个用户的权限都不一样时,chmod有局限性。

ACL(setfacl/getfacl)

文件和文件夹的权限:

  • 如果有多个用户组,权限设置是很复杂的事情,需要仔细规划(ACL和Chmod混合使用容易产生一些权限问题)
  • 文件夹的读权限:可以列出目录下内容
  • 文件夹执行权限:可以进入到文件夹中,执行切换目录等操作
  • 文件夹的写权限:可以在文件夹中增删文件
  • 用户对某个文件有了rwx权限,不代表用户有权删除该文件,只代表对文件内容有了删除权限,要能对文件级别进行操作,需要设置相应的文件夹的w权限。

getfacl filename/filedirectory

  • 查看文件/文件夹 权限:结果会展示user,group和other的整体权限,以及特殊用户的权限

setfacl -m u:username:rwx filename

  • 给某个用户添加对某个文件或者文件夹的特殊权限
  • 给普通用户添加完相应权限以后,root也会有相应的权限(理论上root拥有最多的权限)

setfacl -x u:username filename

  • 删除用户对某个文件或者是文件夹的特殊权限

SUDO

简介

  • 不同于chmod/acl 设置某个文件的权限,sudo主要是为非root用户增加系统的处理和执行权限。比如只有root有useradd权限,通过sudo,可以为普通用户增加useradd权限。
  • 为普通用户增加权限有两种方式:带密码验证和不带密码验证,并且可以指定sudo可运行的机器。
  • 使用sudo有两个步骤:1. visudo编辑权限 2. 普通用户在使用命令前添加sudo

创建无密码sudo(执行脚本时通常采用无密码sudo)

  • 编辑visudo: 运行visudo, 采用Vim编辑器编辑添加 sr localhost=NOPASSWD:/usr/sbin/useradd,给用户sr添加“添加用户”的超级权限
  • 切换到sr用户
  • sudo useradd testadd,在sr模式下添加新的用户

创建有密码sudo(可以确保有密码用户才使用此命令)

  • 编辑visudo: 运行visudo, 采用Vim编辑器编辑添加 sr localhost=/usr/sbin/useradd,给用户sr添加“添加用户”的超级权限
  • 切换到sr用户
  • sudo useradd testadd,系统会弹出命令提示,验证完命令以后sr可以成功添加用户

 

 

      

       

时间: 2024-12-21 19:31:52

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

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

一.认识权限和用户管理 1.查看权限 权限类型: 1.r 读 2.w 写 3.x 可执行 Linux用户 1.所有者(u) 2.所属组(g) (所有者及所有者所在组的全部用户) 3.其他用户(o)(其他组的所有用户(包括文件所有者)) 4.所有用户(a) 文件权限解读 文件类型 所有者权限  所属组权限  其他用户权限            所有者  用户所在的组  文件大小  创建时间  文件名 [[email protected] ~]# ll 总用量 100 -rw-------. 1 r

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 脚本执行和基础知识

当我们给予shell脚本执行的权限后,就可以测试程序了,假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法:1.切换到shell脚本所在的目录,执行: [[email protected] home]# cd /root/[[email protected] ~]# ./hello.shhello guys!welcome to my Blog:linuxboy.org! 2.以绝对路径的方式执行: [[email protected] ~]

在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文件内的代码完全复制到一个新建的

文件存储查看MOnitor时遇见权限问题的更改

使用File Explorer之前,让我们来看看File Explorer究竟是个什么东东.日常使用的手机中的所有数据都是存储在内存中的,或者SD卡.我们在查看时,这些数据是以文件夹和文件的形式展现的.那么模拟器自然要模拟手机的目录了,不错,File Explorer正如同手机中数据存放的目录.进入正题: <第一行代码Android>学到数据存储持久化技术时,需要使用android 7.0的模拟器来查看File Explorer中的数据文件时,按照书中介绍的步骤(Android Studio导

shell脚本判断linux文件修改时间后执行操作

判断linux文件修改时间后执行操作 创建脚本 vi /var/tomcat/find.sh #!/bin/bash a=`stat -c %Y /var/tomcat/logs/catalina.out`  //获取文件的修改时间(秒为单位) b=`date +%s`       //获取当前系统的时间 (秒为单位) if [ $[ $b - $a ] -gt 1800 ];   //判断当前时间和文件修改时间差(30分钟) then /sbin/service tomcat restart

expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行

expect脚本同步文件 自动同步文件 #!/usr/bin/expect set passwd "目标机器密码" spawn rsync -av [email protected]目标机器ip:/tmp/12.txt /tmp/ expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r" }}expect eof 然后赋予权限chmod

shell脚本执行及配置文件

linux之shell脚本执行及配置文件 bash脚本执行方法:     1 解释器直接运行         /usr/bin/bash bash FOO.sh     2 使用路径运行脚本(需要有x权限)         chmod +x FOO.sh         /PATH/TO/FOO.sh     3 使用.或source命令执行脚本         . /PATH/TO/FOO.sh         source /PATH/TO/FOO.sh     1,2执行方法和3执行方法的