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

用户权限sudo、suid、sgid以及facl等相关推荐

  1. Linux之特殊权限(SUID/SGID/SBIT)

    Linux之特殊权限(SUID/SGID/SBIT) 博客分类: Linux Linux脚本UnixF#  特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin ...

  2. Linux环境下提升普通用户权限(sudo)

    一. Linux环境下提升普通用户权限(sudo) 用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需 ...

  3. oracle 授权 增删改查权限_linux suid,sgid,sticky-bit三种特殊权限简介

    三种特殊权限简介 SUID 当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权. 如果所有者是 root 的话,那么执行人就 ...

  4. linux文件权限之suid,sgid,粘贴位

    rwx和UGO这些权限很好理解. 下面主要总结suid,sgid,粘贴位.之所以总结是因为我曾经把这个概念弄懂过,但是没过几天我就给忘记了,所以还是踏踏实实记录下来吧. 要理解这些特殊权限最好是结合& ...

  5. 普通用户权限(sudo)安装CDH

    在生产环境中,很多时候集群管理者并没有开放root权限给你来安装CDH,这时候管理者只会开放部分权限,这时涉及这些已经开放的权限时,你必须运用sudo执行.本文接下来先从root权限入手,通过开放部分 ...

  6. Linux操作命令分类详解 - 用户权限(三)

    转自:Linux操作命令分类详解 - 用户权限(三),更优阅读体验:http://www.kongzid.com/ 目录 系列文章 1.用户账号管理 1.1 useradd/adduser 添加用户账 ...

  7. 树莓派学习笔记——开启超级用户权限

    开启超级用户权限 sudo 可以让我们获得超级用户的权限,以此可以用来执行很多命令,不过通常都是在安装软件中.如果有很多的命令需要超级用户的权限,每次都需要输入 sudo 岂不是很麻烦.因此可以使用以 ...

  8. linux下文件、文件夹权限的作用及设置方法(常规权限与SUID、SGID、SBIT、ACL、sudo、umask)

    linux下文件权限设置及其作用 文件权限与归属(读.写.执行权限) linux系统中一切皆文件,要说权限,有必要先了解一下文件的分类 Linux中的文件分类 在linux系统中一切都是文件,但是文件 ...

  9. linux 文件访问控制 特殊权限 suid,sgid,sbit

    setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写.我们一般会再次把它们缩写为 suid 和 ...

最新文章

  1. 公开课报名 | 基于自定义模板的OCR结果的结构化处理技术
  2. NLP/CV模型跨界,视觉Transformer赶超CNN?
  3. 求任意10个数中的正数之和及个数,函数实现体会地址传递
  4. MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
  5. ES6学习(七)—Set 和 Map 数据结构
  6. spark常见问题定位
  7. html如何给标题设置边框和底纹,word如何设置文字边框和底纹
  8. 转炉炼钢计算机仿真实训,转炉炼钢生产仿真实训(高职高专十二五规划教材)
  9. 精选黑科技资源站点,总会有你需要的干货!
  10. RFE -- 用户活跃度模型
  11. 栈内存与堆内存的简单理解
  12. 目标检测Tensorflow:Yolo v3代码详解 (2)
  13. AR隐形眼镜来了,一部手机的价格,正式开启人体佩戴测试
  14. 装虚拟机装Oracle数据库
  15. 关于登录PL/SQL时出现的错误:error while tring to retrieve text for error ORA-12541
  16. 前端字体图标的使用(阿里、icomoon)
  17. 【Qt】 Fractal Designer 5.3 - Help(中文版)
  18. Linux入门基础(了解Linux+简单命令)
  19. 如何利用markdown做出漂亮的笔记
  20. Grafana配置https

热门文章

  1. 2k11补丁php,【西乙】西班牙人4比0 武磊替补出场险造点球
  2. button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
  3. qt中QMap与QMultimap用foreach遍历
  4. string修饰的梦修改吗_知识点!!!NSString用copy和strong修饰的区别
  5. 虚拟机linux中怎样打开qt,虚拟机中在Centos 4.7中安装qt-x11-opensource-4.4.3
  6. 获取php.ini配置信息,获得php所对应的配置文件(php.ini)信息
  7. 2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题
  8. java 缩略图 库_Thumbnailator:一个高质量Java缩略图开发库
  9. php 下拉菜单 多个值,PHP,而foreach下拉菜单在所有下拉菜单中都具有相同的选定值...
  10. c++ char* 改变长度重新赋值_[C/C++] 2 :分析下列代码有什么问题?