zoukankan      html  css  js  c++  java
  • CentOS用户权限管理--su与sudo

    Linux权限管理--su与sudo

    1、su用来切换登录的用户,比如当前用户为chen,可以用su zhu,并输入用户zhu的登录密码,就可以切换到用户zhu。
    如果一个普通用户想切换到root用户,以root用户执行某些程序和查看文件,就必须知道root用户的密码。同理,如果切换到其他的用户,也需要知道其他用户帐号密码。
    如果一个用户想拥有root权限,可以直接把该用户的id改为0,0是root用户的id。另外可以采用xia面的sudo方法,获取root权限。这种方式不要只知道root密码。

    2、sudo,受限的su
    如果系统管理员sa不想其它的普通用户知道root密码,而又希望其他用户能够拥有root用户部分权限或者全部权限。这是最好的选择方式是使用sudo。
    sudo需要通过/etc/sudoers文件来管理用户权限,或者直接输入visudo来编辑/etc/sudoers 文件,最好使用visudo命令。

    sudo运行程序时,输入自己的登录密码即可。

    /etc/sudoers权限管理的通用格式为:
    user  host  =run_as  command
    user:一位或几位用户,在/etc/group中可以用一个%代替它,组对象的名称一定要用百分号%开头。
    host:一个或几个主机名;
    run_as:作为哪个用户运行,常见选项是root和ALL
    command:想让用户或组运行的一个或几个根级别命令。
    eg:root    ALL=(ALL) ALL
    root表示被授权的用户,这里是根用户;
    第一个ALL表示所有计算机;
    第二个ALL表示所有用户;
    第三个ALL表示所有命令;

    全句的意思是:授权根用户在所有计算机上以所有用户的身份运行所有文件。

    $sudo su - 可以由一般用户切换到普通用户

    eg:%zhang  ALL=(ALL)  NOPASSWD:useradd,userdel

    授权zhang组全部成员在所有计算机上以所有用户的身份运行useradd,userdel命令;且运行时不必输入密码。

    区分su、su root、su -、 su - root

    su  后面不加用户是默认切到 root
    su  是不改变当前变量
    su - 是改变为切换到用户的变量 
    也就是说su只能获得root的执行权限,不能获得环境变量
    而su -是切换到root并获得root的环境变量及执行权限

    su - root  is   the same as su -
    just like login as root, then the shell is login shell,
    which mean it will expericene a login process,
    usually .bash_profile and .bashrc will be sourced
    su  root    is    the same as su
    like you open an interactive shell in root name,
    then only .bashrc will be sourced.

  • 相关阅读:
    python3 数据类型测试
    python基础 数据类型
    python 运算符
    我的博客终于开通了
    Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏
    ASP.NET 使用application和session对象写的简单聊天室程序
    今日开博 留个脚印
    ASP.NET Visual Studio2010 发布Web网站问题详解
    C# 使用Linq递归查询数据库遇到的问题及解决方法
    C# 一个简单的秒表引发的窗体卡死问题
  • 原文地址:https://www.cnblogs.com/userOS/p/5906319.html
Copyright © 2011-2022 走看看