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外的所有环境变 量 LOGNAME,PATH环境变量 | (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的顺序优先级如下: 3.选项目标用户在passwd文件中指定的shell | ||
sudo | -b (background)该选项告诉sudo在后台执行指定的命令。 sudo -k 认证信息失效必须输入密码,sudo输入密码默认时长5分钟 sudo -l 列出当前用户所有的可以使用的sudo命令 sudo -h 列出使用方法,退出。 sudo -V 显示版本信息,并退出。 | 1. sudo能够限制指定用户在指定主机上运行某些命令。 4.sudo命令使用必须输入当前用户密码,密码有效期为5分钟。超时以后,用户必须重新输入密码。 | |
是/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