用户权限sudo、suid、sgid以及facl等

su

切换用户或以指定用户运行命令。

使用su可以指定运行命令的身份(user/group/uid/gid)。

为了向后兼容,su默认不会改变当前目录,且仅设置HOME和SHELL这两个环境变量(若目标用户非root,则还设置USER和LOGNAME环境变量)。推荐使用--login选项(即"-"选项)避免环境变量混乱

-c command使用-c选项传递要指定的命令到shell上执行。使用-c执行命令会为每个su都分配新的会话环境 
-, -l, --login

启动shell作为登录的shell,模拟真正的登录环境。它会做下面几件事:

   1.清除除了TERM外的所有环境变       量
   2.初始化HOME,SHELL,USER,

      LOGNAME,PATH环境变量
   3.进入目标用户的家目录
   4.设置argv[0]为"-"以便设置shell         作为登录的shell使用--login的su       是交互式登录。不使用--login的       su是非交互式登录(除不带任何         参数的su外

(1). 若su没有给定任何参数,将默认以root身份运行交互式的shell(交互式,所以需要输入密码),即切换到root用户,但只改变HOME和SHELL环境变量。

(2). su - username是交互式登录,要求密码,会重置整个环境变量,它实际上是在模拟真实的登录环境。

(3). su username是非交互登录,不会重置除HOME/SHELL外的环境变量

-m, -p, --preserve-environment保留整个环境变量(不会重新设置HOME,SHELL,USER和LOGNAME),保留环境的方法是新用户shell上执行原用户的各配置文件,如~/.bashrc。当设置了--login时,将忽略该选项
-s SHELL

运行指定的shell而非默认shell,选择shell的顺序优先级如下:
1.--shell指定的shell
2.如果使用了--preserve-environment,选择SHELL环境变量的shell

 3.选项目标用户在passwd文件中指定的shell
  4./bin/sh

sudo

-b   (background)该选项告诉sudo在后台执行指定的命令。
      注意,如果使用该选项,将无法使用任务计划(job)来控         制维护这些后台进程,需要交互的命令应该考虑是否真的要后台,因为可能会失败
-l[l] [command]:当单独使用-l选项时,将列出(list)用户可执行和被禁止的命令。
                          当配合command时,且该command是被允许执行的命令,将列出命令的全路径及该命令参数。
                          如果command是不被允许执行的,则sudo直接以状态码-1退出。
                          可以指定多个字母"l"来显示更详细的格式
-n             :使得sudo变成非交互模式,但如果安全策略是要求输入密码的,则sudo将报错
-S             :(stdin)该选项使得sudo从标准输入而非终端设备上读取密码,给定的密码必须在尾部加上换行符
-s [command]   :(shell)指定要切换到的shell,如果给定command,则在此shell上执行该命令
-U user        :(other user)配合-l选项来指定要列出哪个用户的权限信息
-u user        :(user)该选项明确指定要以此处指定的用户而非root来运行command。
                     若使用uid的方式指定用户,则需要使用"#uid",但很多时候可能需要对"#"使用"\"转义,即使用"\#uid"
-E               :(environment)该选项告诉sudo在执行命令时保留自己的环境变量,保留环境变量的方式是执行环境配置文件。
                     但因为跨了用户,所以很可能某些家目录下的环境配置文件会因为无权限而执行失败,此时sudo将报错   
-k [command]   :当单独使用-k选项时,sudo将使得用户的认证缓存失效。下次执行sudo命令需要输入密码。
                           当配合command时,-k选项将忽略用户的缓存,所以sudo将要求用户输入密码,但这次输入密码不会更新认证缓存
                           但执行-k选项本身,不需要密码
-K             :(sure kill)类似于-k选项,但它会完全移除用户的认证缓存,且不会配合command,执行-K本身不需要密码
-v             :(validate)该选项使得sudo更新用户认证缓存
--             :暗示sudo命令行参数到此结束

sudo  -k   认证信息失效必须输入密码,sudo输入密码默认时长5分钟                sudo  -l  列出当前用户所有的可以使用的sudo命令  sudo -h     列出使用方法,退出。                                                                     sudo -V    显示版本信息,并退出。
sudo -u     以指定用户的身份执行命令,可以是用户名,也可以是#uid。
                                                                                         
sudo -p     Prompt     可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。
sudo -e     file     不是执行命令,而是修改文件,相当于命令sudoedit。

 

1. sudo能够限制指定用户在指定主机上运行某些命令。
2. sudo可以提供日志,记录每个用户使用sudo做了些什么,在配置文件/etc/syslog.cnf添加修改。
3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置

4.sudo命令使用必须输入当前用户密码,密码有效期为5分钟。超时以后,用户必须重新输入密码。
5.   支持别名  ,遵循EBNF描述性语言,字母必须全部大写,别名可以嵌套别名,可以!取反,必须先定义

                          是/etc/sudoers,用visudo命令修改,一个sudo条目:

            用户       ALL主机=(root)以身身份执行      NOPASSWD:  命令 ,  PASSWD:命令    !命令

         test   linux=(test1,test2)    /bin/ls    用sudo  -u指定用户运行

            Defaults:test   runas_default=test1  默认以test1运行,Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是              对所 有 用户的默认

①用户名:可以用组,只需在组名前加个百分号%表示。

②主机名:表示该用户可以在哪些主机上运行sudo,可以用hostname也可以用ip指定。

③可切换的用户身份,即指定执行命令的用户,也可以用组。

④权限和命令:允许执行和不允许执行的命令(多个命令间用逗号分隔)和特殊权限,命令可以带其选项及参数。命令要写绝对路径。不允许执行的命令需要在命令前加上"!"来表示。可以使用标签,如NOPASSWD标签表示切换或以指定用户执行该标签后的命令时不需要输入密码。一行写不下时可使用"\"续行

 

             who               User_alias     USER_ADMIN =  用户名,组名%引导

             which host    Host_Alias=主机名、ip地址、其他主机别名

             runas            Run_Alias=用户名、%组名,其他的别名

             command     Cmd_Alias=命令路径,目录,其他别名   

 

 

7.SUID、SGID、STICK

    SUID  以执行文件所属主身份运行,chmod u+s 文件    ,如果原来有执行权限,其他位为s,否则为S

8      facl利用文件扩展保存额外的访问控制权限 ,文件属性后面有+号

       对于一个文件的访问   ower-----》facl   ower-----》group-----》facl  group》other

       setfacl     -m  设定       u uid        -m   u:test:rw       文件    前面加d:,为目录设置,目录中创建的文件自动继承目录权限

                                          g  gid        -m   g:group:rw   文件    

                      --mask             

                      -x取消设定    

       getfacl  

 

    

   

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 服务器调优

关于 MySQL 调优 有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为: 替换有问题的硬件。 对 MySQL 进程的设置进行调优。 对查询进行优化。 替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这…

通过脚本启动批量服务

/app/all_start_script/wwyt/此目录服务如下:apigateway.sh auth.sh config.sh register.sh zipkin.sh /app/all_start_script/other/此目录服务如下: tomcat.sh wwyt_base.sh wwyt_cache.sh wwyt_flow.sh wwyt_risk_login.sh ww…

高性能MySQL(3)——创建高性能索引

索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 一、索引的类型 在MySQL中,索引是在存储引擎层而不是服务器层实现的。所以没用统一的索引标准,不同存储引擎的索引工作方式并不相同。 1.1、B-Tre…

linux 调优系列

Linux系统内核:修改TCP/IP调优参数 所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义: 1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。 2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。 3.…

java中的构造方法与代码块

一、构造方法 1.1、java中的构造方法跟普通方法有很大的区别: 构造方法的方法名跟类名相同构造方法没有返回值类型,连void也没有,也不能用return返回值每次创建一个对象,都会调用构造方法,如果没有写构造方法,系统会默认加上一个空参的构造,如果已经写了构造方法,…

bash shell是如何识别特殊符号的

一 、 shell命令解析以及识别通配符 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行 。 实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编…

linux 调优系列(续)

linux 的各大发行版,都有些不必要的服务被默认开启了,针对ubuntu,我们 可以采用选择性关闭的方法加速起动,提高系统性能。 这里我们安装一个软件: sudo apt-get install sysv-rc-conf 然后这样起动: 在这个…

配置文件bashrc与profile的区别

1、当登入系统时候获得-个shell进程时,其读取环境设定档有三步 首先读入的是全局环境变量设定档/ete/profile,然后根据其内容读取额外的设定的文档,如/etc/profile. d和/ etc/ inputre 然后根据不同使用者帐号,去其家目录读取, bash, pr…

高性能MySQL(4)——查询性能优化

査询优化、索引优化、库表结构优化需要齐头并进,一个不落。 一、为什么查询速度为变慢 在尝试编写快速的查询之前,需要清楚一点,真正重要是响应时间。如果把查询看作是一个任务,那么他由一系列子任务组成,每个子任务都会消耗一定的时间。如果…

GooglePerformanceTools--tcmalloc

TCmalloc全称是Thread-Caching malloc,作者宣称tcmalloc相对于glibc2.3 malloc(aka ptmalloc2)有6倍的性能提高,tcmalloc的常用场景是用于加速MySQL,不过据Wikipedia的hacker Domas Mituzas说,tcmalloc不仅仅对MySQL起作用&#x…

linux基本命令以及命令常用选项

linux基本命令以及命令常用选项touch 创建文件,改变恩建时间戳,如果直接跟上一个文件,该文件不存在则创建文件-c文件不存在不创建文件,存在则改变文件的时间戳-a只改变文件的访问时间-m改变文件的修改时间-t时间格式CCYYMMDDhhmm…

Java获取上一周、上一个月、上一年的时间

SimpleDateFormat format new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Calendar c Calendar.getInstance(); 1.过去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d c.getTime(); String day format.format(d); System.out.println(“过去七天&#…

远程网络安装RHEL5

一:Linux安装工作原理 众所周知,在安装过程中Linux首先需要一个引导程序来让安装光盘启动,再实行配置与安装。但目前转化为远程网络安装那么就需要我们的安装程序能够远程地通过网络传送给客户端。因此在搭建远程Linux安装服务器时候首先要值…

sed命令操作

sed 是一种数据流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区(pattern space称为“模式空间”)中,在内存中处理,完成后把该行发送到屏幕上,清理pattern space中的内容,接着重复刚才的动作,读入下一行,直到文件处理结束。文件内容并没有 改变,…

Portainer简介及部署

一、介绍 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用…

Nexus搭建Maven私有仓库

一、使用Docker安装Nexus 1、查询当前有哪些Nexus镜像 docker search nexus2、下载sonatype/nexus3 docker pull docker.io/sonatype/nexus33、运行nexus容器 mkdir -p /usr/local/nexus3/nexus-data #新建挂载目录 chown -R 200 /usr/local/nexus3/nexus-datadocker run -…

VI资料收集

1.6.1 vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是向下移动光标&#xff…

linux终端

终端就是处理计算机主机输入输出的一套设备,它用来显示主机运算的输出,并且接受主机要求的输入,典型的终端包括显示器键盘套件,打印机打字机套件等 linux终端类型终端名称标识含义串行端口终端Serial Port Terminal/dev/ttySx 串行…

日常问题——VMware下的CentOS7 Ping不通百度

问题描述: 在VMware下新创建的CentOS ping 不通百度 解决方案: 1、点击VMware的编辑按钮下的虚拟网络编辑器 2、更改设置后,选择NAT类型,点击NAT设置 3、记录下,子网ip,掩码,网管IP信息 4、…

linux查找文件find

查找命令文件whatis 从path还从man中查找which 从path环境变量中查找文件查找locate /var/lib/mlocate/mlocate.db 通过update更新数据库 find 默认动作是 -print -ls -delete -ok -exec 命令 {} \; -name根据文件名查找-iname忽略大小写-size根据文件及目录大小查找…