zoukankan      html  css  js  c++  java
  • Linux学习笔记——使用指定的用户权限执行程序——sudo

          sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。

    1:sudo的帮助信息如下:

    qian@ubuntu:~/桌面$ sudo --help
    sudo - 以其他用户身份执行一条命令

    usage: sudo -h | -K | -k | -V
    usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
    usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
    usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
    usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...

    选项:
    -A, --askpass 使用助手程序进行密码提示
    -b, --background 在后台运行命令
    -C, --close-from=num 关闭所有 >= num 的文件描述符
    -E, --preserve-env 在执行命令时保留用户环境
    -e, --edit 编辑文件而非执行命令
    -g, --group=group 以指定的用户组或 ID 执行命令
    -H, --set-home 将 HOME 变量设为目标用户的主目录。
    -h, --help 显示帮助消息并退出
    -h, --host=host 在主机上运行命令(如果插件支持)
    -i, --login 以目标用户身份运行一个登录 shell;可同时指定一条命令
    -K, --remove-timestamp 完全移除时间戳文件
    -k, --reset-timestamp 无效的时间戳文件
    -l, --list 列出用户权限或检查某个特定命令;对于长格式,使用两次
    -n, --non-interactive 非交互模式,不提示
    -P, --preserve-groups 保留组向量,而非设置为目标的组向量
    -p, --prompt=prompt 使用指定的密码提示
    -r, --role=role 以指定的角色创建 SELinux 安全环境
    -S, --stdin 从标准输入读取密码
    -s, --shell 以目标用户运行 shell;可同时指定一条命令
    -t, --type=type 以指定的类型创建 SELinux 安全环境
    -U, --other-user=user 在列表模式中显示用户的权限
    -u, --user=user 以指定用户或 ID 运行命令(或编辑文件)
    -V, --version 显示版本信息并退出
    -v, --validate 更新用户的时间戳而不执行命令
    -- 停止处理命令行参数

    2:有关sudo需要注意的地方

    注意sudo命令是用来以其他身份来执行命令的,其预设的身份为root(也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行的一样)。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

    qian@ubuntu:~/桌面$ vim /etc/sudoers

    /etc/sudoers" [权限不足] 

    qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
    [sudo] password for qian:
    qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
    qian@ubuntu:~/桌面$

    从实验中我们发现,首先,我们使用vim命令尝试编辑 /etc/sudoers,系统提示我们“权限不足”。然后,我们试着加上sudo再尝试。sudo要求我们提供用户密码。请注意:它要求你提供的是你的密码,而不是root的密码。最后,我们打开了 /etc/sudoers 这个文件。就这样,我们相当于在不知道root用户密码的情况下,执行了只有root用户才能操作的命令,是不是很好玩。

    3:给用户添加sudo权限

    要使用sudo,用户必须被定义在 /etc/sudoers 内才可以的。

    方法一如下:

    原文连接 http://blog.chinaunix.net/uid-25305993-id-126661.html

    1:进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)

    2:添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。 

    3:编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。

    4:撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。 然后就行了。

     

    方法二如下:

    原文连接 http://man.linuxde.net/sudo

    配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。

    4:有关sudo其他比较有益的文章

    http://os.51cto.com/art/201307/404879.htm

    http://onlyzq.blog.51cto.com/1228/517701/

    http://os.51cto.com/art/201010/229477.htm

  • 相关阅读:
    mac 个人账户环境变量位置
    版本控制工具Git
    xmind导图用例转换为表格用例
    Mysql清空表(truncate)与删除表中数据(delete)的区别
    log4j日志级别及使用规范
    洛谷 P3807 【模板】卢卡斯定理
    jmeter环境配置与java环境配置
    NOI2020乱搞记
    Re:ゼロから始める文化課生活
    阅读书单
  • 原文地址:https://www.cnblogs.com/godtrue/p/5335217.html
Copyright © 2011-2022 走看看