sudo

(0 comments)

配置文件

编辑文件时,visudo打开一个类似vi的编译工具,并且有简单的语法检查功能。User_Alias定义用户别名,用户组以%开头表示;Runas_Alias定义用来执行命令的用户别名;Cmnd_Alias定义命令别名,别名下的成员必须是文件或目录的绝对路径;

授权规则:

授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]….

User_Alias SYSADM=jialiangnet
Runas_Alias RUSERS=beinan,bnnb
Cmnd_Alias CMDLIST=/usr/sbin/adduser,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*

SYSADM   ALL=(RUSERS)  NOPASSWD: ALL
SYSADM   ALL= CMDLIST
SYSADM   ALL=(OP) CMDLIST
beinan   ALL=(root)  NOPASSWD: /bin/chown,/bin/chmod

环境变量

sudo会继承当前Shell的环境变量,测试如下:

$ export A="a"
$ sudo -u w-in-iv echo $A
a

但是,有些环境变量被自动移去,有些程序需要读取这些环境变量,例如:LD_LIBRARY_PATH等。

$ sudo -V
Environment variables to remove:
        BASH_ENV
        ENV
        TERMCAP
        TERMPATH
        TERMINFO_DIRS
        TERMINFO
        _RLD*
        LD_*
        PATH_LOCALE
        NLSPATH
        HOSTALIASES
        RES_OPTIONS
        LOCALDOMAIN
        IFS

对于需要上述环境变量的程序,

sudo -u w-in-iv sh -c "source /home/w-in-iv/.bash_profile; /home/w-in-iv/a.sh"
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required