前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >100个Linux命令(2)-用户管理

100个Linux命令(2)-用户管理

原创
作者头像
懒人的小脑
修改2019-01-08 15:54:27
1.9K0
修改2019-01-08 15:54:27
举报
文章被收录于专栏:懒人的运维备忘录

本文介绍Linux基础中与用户相关原理以及命令的使用。

理论篇

基本概念

用户和用户组都是Linux系统中的一种资源。

每个用户都用用户名、用户ID、所属组及其默认shell,可能包括密码、家目录、附属组和注释信息等。

每个组也都有用户组名、用户组ID。在Linux中,约定俗成的将同一用户的UID和GID保持一致。组分为主组和附加组,用户一定会属于一个主组,也可以同时加入多个附加组。

在Linux中,用户分为3中:超级管理员、系统用户、普通用户

(1)超级管理员

超级管理员是最高权限者,uid=0,默认超级管理员用户名为root。因为uid默认具有唯一性,所以超级管理员默认只能有一个。家目录为/root

(2)系统用户

系统用户是具有某些权限但不需要登录操作系统的用户。uid 范围从201到999。出于安全考虑,系统用户一般不用来登录,所以系统用户的默认 shell 一般是/sbin/nologin,并且大多数情况下它们没有家目录。

(3)普通用户

普通用户是权限受到限制的用户,默认只能执行/bin、/usr/bin、/usr/local/bin和自身家目录下的命令。uid 范围从500开始。普通用户对自身加目录下的所有文件拥有所有权限。家目录为/home下以用户名命名的文件夹。

超级管理员的命令提示符是"#",其他为"$"

相关文件

1.用户文件/etc/passwd

/etc/passwd文件记录操作系统中用户的信息,文件中有多少行系统就有多少个用户。

每一行表示一个用户,每一行格式都是6个冒号共7列属性,其中某些列属性可以留空。

/etc/passwd 文件
/etc/passwd 文件
  • 用户名:注意两个特殊用户:root 和 nobody
  • 密码占位符:密码信息和用户信息分离后,用户密码占位符
  • UID
  • GID
  • 用户注释信息
  • 用户家目录:root 用户的家目录是/root
  • 用户默认 shell:虽然功能是设置默认 shell,但也可以是任意一个可执行程序或脚本,如/sbin/nologin、/sbin/shutdown

2.用户密码文件/etc/shadow

/etc/shadow文件中存放的是用户的密码信息,该文件除了超级管理员,任何人都不能直接读取和修改文件。用户之所以能修改自己的密码,是因为 passwd 程序的 suid 属性,使得修改密码时临时提升为 root 权限。

每一行表示一个用户密码属性,有8个冒号共9个属性

/etc/shadow 文件
/etc/shadow 文件
  • 用户名
  • 加密后的密码
    • 该列为空,即"::",表示该用户没有密码
    • 该列为"!",表示该用户被锁定,无法登录,但其他登录方式可能不被限制,如 ssh key 方式、su 方式
    • 该列为"*",即":*:",表示该用户被锁,和"!"相同
    • 该列为"$id$salt$hashed",表示该用户密码正常。
      • $id$的id表示密码的加密算法
        • $1$表示使用MD5算法
        • $2a$表示使用Blowfish算法
        • $2y$是另一算法长度的Blowfish
        • $5$表示SHA-256算法
        • $6$表示SHA-512算法,$5$和$6$这两种算法的破解难度远高于MD5
      • $salt$是加密时使用的salt
      • $hashed是真正的密码部分。
  • 当前密码的使用天数:才1970年1月1日到上次修改密码的天数
  • 密码最少使用天数:省略或"0"表示不设置期限
  • 密码最大使用天数:超过了它不一定密码就失效,可能下一个字段设置了过期后的宽限天数。设置为空时将永不过期,后面设置的提醒和警告将失效。root等一些用户的已经默认设置为了99999,表示永不过期。如果值设置小于最短使用期限,用户将不能修改密码
  • 密码过期前多少天就开始提醒用户密码将要过期:空或0将不提醒
  • 密码过期后的宽限天数:在宽限时间内用户无法使用原密码登录,必须改密码或者联系管理员。设置为空表示没有强制的宽限时间,可以过期后的任意时间内修改密码
  • 帐号过期时间:从1970年1月1日开始计算天数。设置为空帐号将永不过期,不能设置为0。不同于密码过期,密码过期后账户还有效,改密码后还能登录;帐号过期后帐号失效,修改密码重设密码都无法使用该帐号
  • 保留字段

3.组文件 /etc/group 和 /etc/gshadow

/etc/group 包含了组的信息,每行一个组,3个冒号共4列信息,分别是组名、密码占位符、gid、该组的 user 列表

/etc/gshadow 包含了组密码信息

4.骨架目录/etc/skel

骨架目录的作用是当新建用户时,会将此目录的文件复制到新建用户的家目录中。默认只有三个环境配置文件,可以修改这里面的内容,或者添加文件在骨架目录中,以后新建的用户就会自动获得到这些环境和文件。

/etc/skel 文件
/etc/skel 文件

5.用户账号限制文件 /etc/login.defs

该文件的配置对 root 用户无效。如果/etc/shadow 文件中也有相同的配置,则以 shadow文件为准。

该文件可以设置关于密码的最大有效期、两次密码最小间隔、useradd 命令创建用户自动选择 uid 和 gid 的范围、家目录的 umask 值(默认022)、用户和组密码的默认加密算法等。

/etc/login.defs 中的设置控制的是 shadow-utils包中的组件,组件中的工具执行操作时会读取该文件中的配置。

shadow-utils 包含的二进制程序
shadow-utils 包含的二进制程序

6./etc/default/useradd

创建用户时使用的默认配置。useradd -D修改的就是此文件

/etc/default/useradd 文件
/etc/default/useradd 文件
  • GROUP:在 useradd 使用-N 或者 /etc/login.defs 中 USERGROUPS_ENAB=no 时表示创建用户时不创建同用户名的主组,此时新建的用户将默认以此组为主组
  • HOME:用户的家目录位置
  • INACTIVE:是否启用账号过期设置(注意不是密码过期),-1表示不启用
  • SHEEL:新建用户默认的 shell
  • SKEL:指定骨架目录
  • CREATE_MAIL_SPOOL:是否创建用户 mail 缓冲

(7)/etc/sudoers

该文件主要配置 sudo 命令时指定的用户和对应的权限。主要包括别名的配置和 sudo 权限的配置

安全策略配置格式为:用户名 主机名=(可切换到的用户身份) 权限和命令

  • 用户名:允许使用 sudo 的用户名,也可以用用户组,只需在组名前加个百分号%表示;
  • 主机名:表示该用户可以在哪些主机上运行sudo,可以用 hostname 也可以用 ip 地址指定,ALL 表示从任何终端(任何主机)使用 sudo;
  • 可切换到的用户身份:即指定执行命令的用户,也可以用组,(ALL)表示允许以任何用户执行 sudo 命令
  • 权限和命令:允许执行和不允许执行的命令和特殊权限,多个命令间用逗号分隔,命令可以带其选项以及参数。命令要写绝对路径。不允许执行的命令需要在命令加上"!"。可以使用标签,如 NOPASSWD 标签表示切换或以指定用户执行该标签后的命令时不需要输入密码。一行写不下是可以使用'\'续行。 ALL 表示允许 sudo 权限执行款芳儿命令。

标签的使用方法:NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/userdel

上面表示 useradd 命令不需要输入密码,而 userdell 需要输入密码

示例

  1. 授权给单个用户:manson ALL=(ALL) ALl
  2. 用户 text 只能在本机以 root 账户执行/bin/chown、/bin/chmod:test dev1=(root) /bin/chown,/bin/chmod
  3. 授权给组:%sudo ALL=(ALL) ALL

命令篇

22.useradd && adduser

useradd用于添加用户,adduseruseradd的软链接。默认会自动创建一个和用户名相同的用户组,由/etc/login.defs 中的USERGRUOP_ENAB 变量控制。创建普通用户时,不加任何和家目录相关的选项时,是否创建家目录是由/etc/login.defs 中的CREATE_HOME 变量控制的。

一般用法:useradd options login_name

选项

-b:指定家目录的 basedir,默认为/home 目录

-d:指定用户家目录,默认为/home/user_name

-m:创建家目录时,若家目录不存在则自动创建,若不指定该选项且/etc/login.defs 中CREATE_HOME 未启用时将不不会创建家目录

-M:显式指定不要创建家目录,会覆盖/etc/login.defs 中 CREATE_HOME 设置

-g:指定用户主组,要求组已存在

-r:创建一个系统用户。默认不会创建用户家目录,除非使用-m 选项

-s:指定用户默认的登录 shell,默认使用/etc/default/useradd 中的 SHELL变量设置

-u:指定用户 uid,默认 uid 必须唯一,除非使用-o 选项

-o:允许创建一个重复 uid 用户,只有和-u 选项同时使用才生效

-D:修改 useradd 创建用户时的默认选项,即修改/etc/default/useradd 文件

  • -b,--base-dir BASE_DIR
  • -e,--expiredate EXPIRE_DATE
  • -f,--inactive INACTIVE
  • -g,--gid GROUP
  • -s,--shell SHELL
  • 不加以上5个选项,会列出默认属性

23.newusers

newusers用于批量创建或修改已有用户信息。创建用户会读取 /etc/default/login.defs 的配置项。

一般用法:

代码语言:txt
复制
newusers [options] [file]

file 文件定义了需要新建或修改用户的信息,一行代表一个用户,格式如下:

pw\_name:pw\_passwd:pw\_uid:pw\_gid:pw\_gecos:pw\_dir:pw\_shell

  • pw_name:用户名,不存在则新建,否则修改已存在的用户信息
  • pw_passwd:用户密码,该项使用明文密码,在修改或创建用户时会按照指定的算法自动对其进行加密转换
  • pw_uid:指定 uid,留空则自动选择 uid。如果该项为已存在的用户名,则使用该存在用户的 UID。
  • pw_gid:用户主组的 gid 或组名。若给定组不存在,则自动创建组。留空则创建同用户名相同的组,gid 自动选择。
  • pw_gecos:注释信息
  • pw_dir:指定用户家目录,若不存在则自动创建,留空则不创建。newusers 不会递归创建父目录
  • pw_shell:指定用户的默认 shell

选项

-c:指定加密算法,可选 DES、MD5、NONE、SHA256、SHA512

-r:创建一个系统用户

newusers首先尝试创建或修改所有指定的用户,然后将信息写入到user和group的文件中。如果尝试创建或修改用户过程中发生错误,则所有动作都将回滚,但如果在写入过程中发生错误,则写入成功的不会回滚,这将可能导致文件的不一致性。要检查用户、组文件的一致性,可以使用showdow-utils包提供的grpck和pwck命令。

24.groupadd

groupadd用于创建一个新组。

一般用法:groupadd options group

选项

-f:如果要创建的组已经存在,默认会错误退出,使用该选项则强制创建且以正确状态退出,只不过gid可能会不受控制

-g:指定gid,默认gid必须唯一,除非使用了-o选项

-K:修改/etc/login.defs中关于组相关的配置项。配置方式为KEY=VALUE,例如-K GID_MIN=100 -K GID_MAX=499

-o:允许创建一个非唯一gid的组

-r:创建系统组

25.passwd

passwd用于修改密码。默认 passwd 命令不允许为用户创建空密码。

passwd 命令修改密码前会通过 pam 认证用户,pam 配置文件中与此相关的设置项如下:

  • passwd password requisite pam_cracklib.so retry=3
  • passwd password required pam_unix.so use_authtok

一般用法:passwd options username

选项

-l:锁定指定用户的密码,在/etc/shadow 的密码列加上前缀"!"或"!!"。这种锁定不是完全锁定,使用ssh公钥还是能登录。要完全锁定,使用chage -E 0来设置帐户过期

-u:解锁-l锁定的密码,解锁的方式是将/etc/shadow的密码列的前缀"!"或"!!"移除掉。但不能移除只有"!"或"!!"的项

--stdin:从标准输入中读取密码

-d:删除用户密码,将/etc/shadow的密码列设置为空

-f:指定强制操作

-e:强制密码过期,下次登录将强制要求修改密码

-n:密码最小使用天数

-x:最大密码使用天数

-w:过期前几天开始提示用户密码将要过期

-i:设置密码过期后多少天,用户才过期。用户过期将被禁用,修改密码也无法登陆

26.chpasswd

以批处理模式从标准输入中获取提供的用户和密码来修改用户密码,可以一次修改多个用户密码。也就是说不用交互。适用于一次性创建了多个用户时为他们提供密码。

一般用法:chpasswd -e -c "user:passwd"

选项

-c:指定加密算法,可选的算法有DES,MD5,NONE,SHA256和SHA512

-e:passwd默认使用的是明文密码,如果要使用密文,则使用-e选项。参见man chpasswd

user:passwd为用户密码对,其中默认passwd是明文密码,可以指定多对,每行一个用户密码对。前提是用户是已存在的。

chpasswd会读取/etc/login.defs中的相关配置,修改成功后会将密码信息写入到密码文件中。

该命令的修改密码的处理方式是先在内存中修改,如果所有用户的密码都能设置成功,然后才写入到磁盘密码文件中。在内存中修改过程中出错,则所有修改都回滚,但若在写入密码文件过程中出错,则成功的不会回滚。

用法示例:

代码语言:txt
复制
# 修改单个用户密码
echo "user1:123456" | chpasswd -c SHA512
# 修改多个用户密码
echo  -e 'usertest:123456\nusertest2:123456' | chpasswd
# 使用文件修改多个用户密码
cat /tmp/passwdfile
zhangsan:123456
lisi:123456
chapasswd -c SHA512 </tmp/passwdfile

27.chage

chage命令主要修改或查看和密码时间相关的内容。

选项

-l:列出指定用户密码相关信息

-E:指定账户(不是密码)过期时间,所以是强锁定,如果指定为0,则立即过期,即直接锁定该用户

28.userdell & groupdel

userdel命令用于删除用户。

代码语言:txt
复制
userdel [options] login_name
-r:递归删除家目录,默认不删除家目录。
-f:强制删除用户,即使这个用户正处于登录状态。同时也会强制删除家目录。

一般不直接删除家目录,即不用-r,可以使用vim /etc/passwd将不需要的用户直接注释掉。

groupdel命令删除组。如果要删除的组是某用户的主组,需要先删除主组中的用户。

29.usermod

usermod用于修改用户账户属性信息。在执行此命令时,待修改的用户需要没有正在执行的进程。

代码语言:txt
复制
usermod [options] login
选项说明:
-l:修改用户名,仅仅只是改用户名,其他的一切都不会改动(uid、家目录等)
-u:新的uid,新的uid必须唯一,除非同时使用了-o选项
-g:修改用户主组,可以是以gid或组名。对于那些以旧组为所属组的文件(除原家目录),需要重新手动修改其所属组
-m:移动家目录内容到新的位置,该选项只在和-d选项一起使用时才生效
-d:修改用户的家目录位置,若不存在则自动创建。默认旧的家目录不会删除
    如果同时指定了-m选项,则旧的家目录中的内容会移到新家目录
    如果当前用户家目录不存在或没有家目录,则也不会创建新的家目录
-o:允许用户使用非唯一的UID
-s:修改用的shell,留空则选择默认shell
-c:修改用户注释信息

-a:将用户以追加的方式加入到辅助组中,只能和-G选项一起使用
-G:将用户加入指定的辅助组中,若此处未列出某组,而此前该用户又是该组成员,则会删除该组中此成员

-L:锁定用户的密码,将在/etc/shadow的密码列加上前缀"!"或"!!"
-U:解锁用户的密码,解锁的方式是移除shadow文件密码列的前缀"!"或"!!"
-e:帐户过期时间,时间格式为"YYYY-MM-DD",如果给一个空的参数,则立即禁用该帐户
-f:密码过期后多少天,帐户才过期被禁用,0表示密码过期帐户立即禁用,-1表示禁用该功能

30.vipw和vigr

vipw和vigr是编辑用户和组文件的工具,vipw可以修改/etc/passwd和/etc/shadow,vigr可以修改/etc/group和/etc/gshadow,用这两个工具比较安全,在修改的时候会检查文件的一致性。

删除用户出错时,提示用户正在被进程占用。可以使用vi编辑/etc/paswd和/etc/shadow文件将该用户对应的行删除掉。也可以使用vipw和vipw -s来分别编辑/etc/paswd和/etc/shadow文件。它们的作用是一样的。

手动创建用户

手动创建用户需要全程使用管理员权限。

(1)添加用户组

在/etc/group 中添加用户所属组的相关信息。如果用户还有附加组则在附加组中加入该用户作为成员

(2)添加用户信息

在/etc/passwd 和/etc/shadow 中添加用户相关信息,此时家目录和密码还不存在,所以/etc/shadow的密码位使用"!!"代替

(3)创建家目录

代码语言:txt
复制
mkdir /home/user_name
cp -r /etc/skel /home/user_home

(4)修改用户家目录以及子目录的所有者和属组

代码语言:txt
复制
chown -R user_name:user_name /home/user_name

(5)修改用户家目录以及子目录的权限

代码语言:txt
复制
chmod -R 700 /home/user_name

目前用户已经创建完成,只是没有密码,所以只能 su,不能登录

(6)生成密码

  • 使用 openssl passwd 生成密码,仅支持 MD5算法,缺点是容易破解
代码语言:txt
复制
openssl passwd -1 -salt '123456' '123456' # -1指的是使用 MD5 算法
  • 使用 passwd 命令创建密码

一下是手动创建用户的过程

代码语言:txt
复制
shell> mkdir /tmp/12;cp /etc/group /etc/passwd /etc/shadow /tmp/12/    # 备份这些文件
shell> echo "userX:x:666" >> /etc/group
shell> echo "userX:x:666:666::/home/userX:/bin/bash" >> /etc/passwd
shell> echo 'userX:!!:17121:0:99999::::' >> /etc/shadow
shell> cp -r /etc/skel /home/userX
shell> chown -R userX:userX /home/userX
shell> chmod -R go= /home/userX
shell> passwd --stdin userX <<< '123456'

如果是使用openssl passwd创建的密码。那么使用下面的方法将这部分密码替换到/etc/shadow中。

代码语言:txt
复制
shell> field=$(tail -1 /etc/shadow | cut -d":" -f2)
shell> password=$(openssl passwd -1 -salt 'abcdefg' 123456)
shell> sed -i '$s%'$field'%'$password'%' /etc/shadow

31.finger 命令

finger命令用于查看用户信息

finger 命令
finger 命令

32.id 命令

id用于显示用户的 UID 和 GID

选项

-u:只获取 UID

-n:得到用户名而不是 uid

-z:无任何空白字符输出模式,默认格式下不可用

id命令
id命令

33.users 命令

user用于查看当前正在登录的用户名

34.last 命令

last用于查看最近登录的用户列表,实际上 last 查看的是/var/log/wtmp 文件

选项

-n:列出最近指定次数登录的用户

last 命令
last 命令

35.lastb 命令

查看谁尝试登陆过但没有登录成功的。即能够审核和查看谁曾经不断的登录,可能那就是黑客。

选项

-n:只列出最近的n个尝试对象。

36.who 和 w 命令

用于查看登录的用户,以及登录用的的操作,w 查看的信息比 who 命令多

who 和 w 命令
who 和 w 命令

w 第一行的信息:当前时间、已开机时长、当前在线用户、过去1、5、15分钟的平均负载。与uptime命令获取的信息完全一致。

37.lastlog 命令

lastlog用于查看登录用户的来源 IP

选项

-u:指定查看用户

lastlog 命令
lastlog 命令

38.su 命令

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

su 默认不该改变当前目录,且仅设置 HOME 和 SHELL 这两个环境变量,如果目标用户时root,则还设置了 USER 和 LOGNAME 环境变量。

推荐使用 su 命令搭配--login 选项避免环境变量混乱

代码语言:txt
复制
su [options...] [-] [user [args...]]
选项说明:
-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外
-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

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

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

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

在某些环境下或脚本中,可能需要临时切换身份执行命令,注意这时候的环境变量是否会改变,否则很可能报错提示命令找不到。

39.sudo和 sudoedit 命令

sudo可以让一个用户以某个身份(如root或其他用户)执行某些命令,它隐含的执行方式是切换到指定用户再执行命令,因为涉及到了用户的切换,所以环境变量是否重置是需要设置的。

sudo支持插件实现安全策略。默认的安全策略插件是sudoers,它是通过/etc/sudoers或LDAP来配置的。

安全策略是控制用户使用sudo命令时具有什么权限,但要注意,安全策略可能需要用户进行身份认证,如密码认证的机制或其他认证机制,如果开启了认证要求,则在指定时间内未完成认证时sudo会退出,默认超时时间为5分钟。

安全策略支持对认证进行缓存,使得在一定时间内该用户无需再次认证就可以执行sudo命令,默认缓存时间为5分钟,sudo -v可以更新认证缓存。

sudo支持日志审核,可以记录下成功或失败的sudo。

当sudo执行指定的command时,它会调用fork函数,并设置命令的执行环境(如某些环境变量),然后在子进程中执行command,sudo的主进程等待命令执行完毕,然后传递命令的退出状态码给安全策略并退出。

sudoedit等价于sudo -e,它是以sudo的方式执行文件编辑动作。

代码语言:javascript
复制
sudo [options] [command]
选项说明:
-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上可以直接设置环境变量,它会传递为command的环境。设置的方式为var=value,如LD_LIBRARY_PATH=/usr/local/pkg/lib

由于sudo默认的安全策略插件是sudoers,所以当用户执行sudo时,系统会自动去寻找/etc/sudoers文件(该文件里被root配置了用户对应的权限,也即安全策略),查看sudo要使用的用户是否有对应的权限,如果有则执行,如果没有权限就失败退出sudo。

参考链接

http://www.cnblogs.com/f-ck-need-u/p/7011460.html

http://www.cnblogs.com/f-ck-need-u/p/7011669.html#auto_id_1

https://www.cnblogs.com/hazir/p/sudo_command.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理论篇
    • 基本概念
      • 相关文件
      • 命令篇
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档