visudo精确用户赋权(sudo)
如何在Linux环境为用户添加sudo权限
如何在Linux环境为⽤户添加sudo权限sudo的配置⽂件sudo默认配置⽂件是**/etc/sudoers** ,⼀般使⽤Linux指定编辑⼯具visudo ,此⼯具的好处是可以进⾏错误检查。
在添加规则不符合语法规则时,保存退出时会提⽰给我们错误信息;配置好后,可以⽤切换到您授权的普通⽤户下,通过sudo -l来查看哪些命令是可以执⾏的或禁⽌的;/etc/sudoers ⽂件中每⾏是⼀个规则,前⾯带有#号可以当作是注释的内容,并不执⾏;如果规则很长,可以写在多列上,可以⽤\号来续⾏。
/etc/sudoers 的规则可分为两类;⼀类是授权规则,另⼀类是别名定义;别名定义并不是必须的,但授权规则是必须的;进⼊root⽤户,打开sudoers⽂件## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot ALL=(ALL:ALL) ALL# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL# See sudoers(5) for more information on "#include" directives:#includedir /etc/sudoers.d实例1:普通⽤户lin添加sudo权限,在“root ALL=(ALL)ALL”这⼀⾏下⾯,加⼊如下图所⽰的⼀⾏(⽤户名 ALL=(ALL) ALL),并保存。
sudo命令的功能
sudo命令的功能
sudo命令是一个非常有用的Linux命令,它允许您以root管理员身份执行命令。
在本文中,我们将介绍sudo命令的功能和用法。
1. sudo命令的核心功能
sudo命令允许普通用户以root管理员身份执行命令。
这对于那些需要执行需要root权限的任务的普通用户非常有用。
2. sudo命令的语法
sudo命令的语法非常简单,其基本格式如下:sudo [选项] 命令
其中,[选项]表示可选的命令选项,命令表示要执行的命令。
3. sudo命令的选项
sudo命令支持许多选项,这些选项可以使您更好地控制sudo命令的行为。
以下是一些常用选项:
- -u:指定执行命令的用户。
- -i:以执行命令的用户的环境变量来执行命令。
- -v:重新验证sudo密码。
4. sudo命令的使用示例
以下是一些常用的sudo命令的用法示例:
- 以root管理员身份打开文件:sudo vim /etc/hosts
- 安装软件包:sudo apt-get install software
- 更改权限:sudo chmod 777 file
5. 注意事项
在使用sudo命令时,您需要确保输入正确的密码。
此外,使用sudo
命令时应该非常谨慎,因为您的命令将以root管理员身份执行。
因此,操作不当可能会造成严重的后果。
总结
sudo命令是一个强大且有用的工具,它允许普通用户以root管理员身份执行命令。
遵循本文提供的提示,您可以以安全且有效的方式使用sudo命令。
Linux命令行中的高级用户权限管理技巧
Linux命令行中的高级用户权限管理技巧Linux作为一个开源操作系统,以其稳定性和灵活性受到广泛关注。
对于使用Linux命令行的高级用户来说,权限管理是一项非常重要的任务。
本文将介绍一些在Linux命令行中使用的高级用户权限管理技巧,帮助您更好地控制和管理系统中的用户权限。
一、用户和组的管理在Linux系统中,用户和组是权限控制的基本单位。
以下是一些常用的用户和组管理命令:1. useradd:创建新用户。
使用该命令可以创建一个新的用户账号,并可以指定其所属的用户组。
2. groupadd:创建新的用户组。
使用该命令可以创建一个新的用户组,并设置相关的属性。
3. usermod:修改用户属性。
使用该命令可以修改用户的相关属性,如用户名、用户组、密码等。
4. userdel:删除用户。
使用该命令可以删除指定的用户账号及其相关的文件。
5. groupmod:修改用户组属性。
使用该命令可以修改用户组的相关属性,如用户组名、用户组ID等。
6. groupdel:删除用户组。
使用该命令可以删除指定的用户组及其相关的文件。
二、文件和目录权限管理在Linux系统中,每个文件和目录都有一组权限,用于控制用户对其的读、写、执行等操作。
以下是一些常用的文件和目录权限管理命令:1. chmod:修改权限。
使用该命令可以修改文件或目录的权限。
-r:递归修改权限,包括子目录中的文件和目录。
-R:同-r,效果一样。
u:表示用户的权限。
g:表示用户组的权限。
o:表示其他用户的权限。
+:增加权限。
-:取消权限。
=:设置权限。
示例:chmod u+rwx file.txtchmod g+rw directory2. chown:修改文件或目录的所有者。
使用该命令可以修改文件或目录的所有者为指定的用户。
示例:chown user file.txtchown user:group directory3. chgrp:修改文件或目录的组。
Linux系统如何添加普通用户到sudoers文件
Linux系统如何添加普通⽤户到sudoers⽂件前⾔Linux 的普通⽤户(uid >= 500)不具有某些命令的执⾏权限,为了执⾏较⾼权限的命令,⼀般有两种⽅法:第⼀种是使⽤su -命令切换到 root ⽤户去执⾏;另外⼀种⽅法是在命令前添加 sudo 去执⾏。
编辑⽂件在使⽤ sudo 执⾏命令之前,需要把当前普通⽤户添加到 sudoers ⽂件:1. 切换到 root ⽤户,使⽤命令 visudo 进⼊ vim ,看到它已打开了 /etc/sudoers ⽂件。
2. 输⼊ "/root" 搜索,找到 "root ALL=(ALL) ALL" 这⾏,按 "yyp" 键得到⼀⾏拷贝,修改为"username ALL=(ALL) ALL","username" 是要添加的⽤户名。
(如果在使⽤ sudo 时不想输⼊⽤户密码,请修改为"username ALL=(ALL) NOPASSWD:ALL")3. :x 保存退出。
PS:下⾯看下【Debian】将普通⽤户添加到sudoerLinux默认是没有将⽤户添加到sudoers列表中的,需要root⼿动将账户添加到sudoers列表中,才能让普通账户执⾏sudo命令。
root 账户键⼊visudo即可进⼊sudo配置,这个命令要⽐vim/etc/sudoers要好很多,因为使⽤visudo进⾏sudo配置,将会得到很多提⽰.键⼊visudo后,在编辑器下键⼊ /root寻找root,找到第三个root的那⼀⾏root ALL=(ALL) ALL按yyp键复制并在粘贴在下⼀⾏,在这⼀⾏的root处输⼊cw将root替换为你所需要添加⽤户的账户名,⽐如Blinux,结果就是root ALL=(ALL) ALLblinux ALL=(ALL) ALL如果你希望之后执⾏sudo命令时不需要输⼊密码,那么可以形如root ALL=(ALL) ALLblinux ALL=(ALL) NOPASSWD:ALL输⼊:wq保存即可。
sudoers文件解析
sudoers⽂件解析分类: LINUX今天在⽤户组中新加了⼀个普通⽤户,开始这个⽤户没有sudo权限,于是通过sudo visudo修改了sudo的配置⽂件,赋予了普通⽤户的root权限。
后来想着能不能将/etc/sudoers⽂件的访问权限改为777,然后直接在编辑这个⽂件。
于是想也没想就这么⼲了。
结果改完之后发现⾃⼰给⾃⼰挖了⼀个坑,把⾃⼰挡在了sudo的门外。
/etc/sudoers是sudo的配置⽂件,它的属性必需为440。
当我⽤sudo chmod 777 /etc/sudoers修改了sudoers⽂件的访问权限后,sudo就不能再⽤了。
再想通过sudo chmod 440 /etc/sudoers修改⽂件sudoers的访问权限,或着使⽤sudo 时结果提⽰:sudo: /etc/sudoers is mode 0777, should be 0440。
这样就⾃⼰把⾃⼰关在了sudo的门外。
这样想通过sudo su或sudo -i切到root⽤户已经不可能了。
这时⽤su root还可以切换到root。
这样就可以修改/etc/sudoers⽂件的访问权限。
问题也就解决了。
后来在⽹上找到⼀篇关于sudoers⽂件的解析,这⾥就贴在下边。
Sudo是允许系统管理员让普通⽤户执⾏⼀些或者全部的root命令的⼀个⼯具,如halt,reboot,su等等。
这样不仅减少了root⽤户的登陆和管理时间,同样也提⾼了安全性。
Sudo不是对shell的⼀个代替,它是⾯向每个命令的。
它的特性主要有这样⼏点:§ Sudo能够限制⽤户只在某台主机上运⾏某些命令。
§ Sudo提供了丰富的⽇志,详细地记录了每个⽤户⼲了什么。
它能够将⽇志传到中⼼主机或者⽇志服务器。
§ Sudo使⽤时间戳⽂件来执⾏类似的“检票”系统。
当⽤户调⽤sudo并且输⼊它的密码时,⽤户获得了⼀张存活期为5分钟的票(这个值可以在编译的时候改变)。
sudo及其配置文件sudoers
############################################################################
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
、再看这个例子:
代码:
ADMINS ALL=(ALL) NOPASSWD: ALL
表示允许ADMINS不用口令执行一切操作,其中“NOPASSWD:”项定义了用户执行操作时不需要输入口令。
5、sudo命令还可以加上一些参数,完成一些辅助的功能,如
代码:
$ sudo –l
会显示出类似这样的信息:
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
Host_Alias EPG = 192.168.1.1, 192.168.1.2
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表
然后保存退出,gem用户想执行reboot命令时,只要在提示符下运行下列命令:
代码:
$ sudo /usr/sbin/reboot
sudo的用法
sudo的⽤法sudo的存在意义在linux系统下,普通⽤户⽆法直接执⾏root⽤户权限下的命令,如果想让普通⽤户执⾏只有root⽤户才能执⾏的操作命令,就需要⽤到sudo。
下⾯罗列下经常使⽤sudo命令的⼏个场景:# 授权普通⽤户执⾏root指令普通⽤户登录 shell 之后,如果⾃⾝没有权限访问某个⽂件或执⾏某个命令时,若该⽤户获得root授权,那么就可以在需要执⾏的命令之前加上 sudo,临时切换到root⽤户的权限,完成相关的操作。
在sudo于1980年前后被写出之前,⼀般⽤户管理系统的⽅式是利⽤su切换为超级⽤户。
但是使⽤su的缺点之⼀在于必须要先告知超级⽤户的密码,⽽sudo使⼀般⽤户不需要知道超级⽤户的密码即可获得权限。
那么哪些⽤户可以临时获得root权限呢?这就需要在/etc/sudoers⽂件中进⾏配置(或者直接使⽤visudo命令,不过只能在root⽤户下执⾏):[root@test-huanqiu ~]# visudo.....# User privilege specificationzhangj ALL=(ALL) ALL参数解释:1)第⼀个字段zhangj指定的是⽤户:可以是⽤户名,也可以是别名。
每个⽤户设置⼀⾏,多个⽤户设置多⾏,也可以将多个⽤户设置成⼀个别名后再进⾏设置。
2)第⼆个字段ALL指定的是⽤户所在的主机:可以是ip,也可以是主机名,表⽰这个sudo设置后的⽂件即/etc/sudoers只在这个主机上⽣效,ALL表⽰在所有主机上都⽣效!限制的⼀般都是本机,也就是限制使⽤这个⽂件的主机;如果指定为"192.168.1.88"表⽰这个⽂件只有在这台主机上⽣效,如果拷贝到别的机⼦上是不起作⽤的!⼀般都指定为"ALL"表⽰所有的主机,不管⽂件拷到那⾥都可以⽤。
3)第三个字段(ALL)括号⾥指定的也是⽤户:指定以什么⽤户⾝份执⾏sudo,即使⽤sudo后可以享有所有账号下的权限。
linux 中不输入密码运行 sudo 命令的方法
linux 中不输入密码运行 sudo 命令的方法(原创版3篇)目录(篇1)1.linux 中不输入密码运行 sudo 命令的方法2.方法一:使用 visudo 编辑器修改 sudo 配置文件3.方法二:使用 configuser 工具4.方法三:使用ypassword策略5.方法四:使用su-exec工具6.方法五:使用 sudoers.d 目录7.方法六:使用setroubleshoot工具8.方法七:使用sudoer.conf文件9.方法八:使用sudoers文件10.方法九:使用visudo编辑器修改sudoers文件11.方法十:使用sudoers.d目录下的配置文件正文(篇1)linux 中不输入密码运行 sudo 命令的方法有很多种,下面介绍其中几种常用的方法。
方法一:使用 visudo 编辑器修改 sudo 配置文件在 /etc/sudoers 文件中添加一行: Defaults password_deny=0,然后保存文件并关闭。
这样,在运行 sudo 命令时就不需要输入密码了。
方法二:使用 configuser 工具在终端中输入以下命令,根据提示输入用户名和密码即可自动配置。
完成后,在运行 sudo 命令时就不需要输入密码了。
configuser username password方法三:使用ypassword策略在终端中输入以下命令,根据提示输入用户名和密码即可自动配置。
完成后,在运行 sudo 命令时就不需要输入密码了。
ypassword username password方法四:使用su-exec工具在 /etc/sudoers 文件中添加一行: Defaults exec_shell=su-exec,然后保存文件并关闭。
这样,在运行 sudo 命令时就可以直接执行 su 命令,而不需要输入密码了。
方法五:使用 sudoers.d 目录在 /etc/sudoers.d 目录下创建一个新的文件,文件名格式为“username”,其中 username 为当前用户名。
给linux新建的用户添加sudo权限
给linux新建的⽤户添加sudo权限
给linux新建的⽤户添加sudo权限
1. 新建⽤户使⽤useradd (linux中有两个添加⽤户的命令,另⼀个是adduser,在Slackware中,adduser指令是个script程序,利⽤交谈的⽅
式取得输⼊的⽤户帐号资料,然后再交由真正建⽴帐号的useradd命令建⽴新⽤户,如此可⽅便管理员建⽴⽤户帐号。
在Red Hat Linux中, adduser命令则是useradd命令的符号连接,两者实际上是同⼀个指令)
useradd ⽤户名
2. 给⽤户设置密码
passwd ⽤户名
3. 切换到root⽤户后编辑/etc/sudoers⽂件
注意:sudoers⽂件默认没有write权限,包括root⽤户也没有写权限,可以使⽤chmod加上写的权限,但是不建议这么做,linux为
sudoers⽂件专门留了⼀个命令:visudo,这个命令可以校验修改后的语法是否正确,当然这样没有⾼亮提⽰visudo
4. 编辑完成后即可切换到授权⽤户进⾏登录
# Allow root to run any commands anywhere
root ALL=(ALL) ALL
yx ALL=(ALL) ALL
加⼊的“yx ALL=(ALL) ALL”这⼀⾏代表的意思是,
yx这个⽤户(第⼀列)
可以从任何地⽅登录后(第⼆列的ALL)
执⾏任何⼈(第三列的ALL)
的任何命令(第四列的ALL)。
还可以定义某⼀个组的sudo权限,
⽐如“%yx ALL=(ALL) ALL”可以让所有属于yx⽤户组的⽤户从任何地⽅登录后执⾏任何⼈的任何命令。
visudo使用方法
visudo与/etc/sudoers从上面的说明我们可以知道,除了root 之外的其他账号,若想要使用sudo 执行属于root 的权限指令,则root 需要先使用visudo 去修改/etc/sudoers ,让该账号能够使用全部或部分的root 指令功能。
为什么要使用visudo 呢?这是因为/etc/sudoers 是有设定语法的,如果设定错误那会造成无法使用sudo 指令的不良后果。
因此才会使用visudo 去修改,并在结束离开修改画面时,系统会去检验/etc/sudoers 的语法就是了。
一般来说,visudo 的设定方式有几种简单的方法喔,底下我们以几个简单的例子来分别说明:I. 单一用户可进行root 所有指令,与sudoers 文件语法:假如我们要让vbird1 这个账号可以使用root 的任何指令,基本上有两种作法,第一种是直接透过修改/etc/sudoers ,方法如下:[root@study ~]# visudo....(前面省略)....root ALL=(ALL) ALL <==找到这一行,大约在98 行左右vbird1 ALL=(ALL) ALL <==这一行是你要新增的!....(底下省略)....有趣吧!其实visudo 只是利用vi 将/etc/sudoers 文件呼叫出来进行修改而已,所以这个文件就是/etc/sudoers 啦!这个文件的设定其实很简单,如上面所示,如果你找到98 行(有root 设定的那行) 左右,看到的数据就是:使用者账号登入者的来源主机名=(可切换的身份) 可下达的指令root ALL=(ALL) ALL <==这是默认值上面这一行的四个组件意义是:1.『使用者账号』:系统的哪个账号可以使用sudo 这个指令的意思;2.『登入者的来源主机名』:当这个账号由哪部主机联机到本Linux 主机,意思是这个账号可能是由哪一部网络主机联机过来的,这个设定值可以指定客户端计算机(信任的来源的意思)。
VisualSvn权限控制
对authz文件编辑时须注意问题:
1. 已经删除的组不能被分配权限,不然会导致文件解析出 错。
2. svn对于非英文文件名和目录名使用utf-8格式编码处理, 要对中文目录进行正确控制,应该使用无BOM的utf-8格 式,如果在编辑中格式出现错误,svn无法解析。
组管理
点击Add按钮,可以在该组中添加成员,在 添加成员时,不仅能加入用户,同时也能加 入其他组。
权限分配操作
左侧选择要分配权限的项目,右键出菜单,选择Manage Security选项,可以在权限分配窗口中对用户进行权限分配。 点击Add按钮可以添加用户或组。然后在下方选择对于的 权限
权限分配的粒度
VisualSvn权限控制
VisualSvn是简便化的svn服务器端,能通过图 形化的方式方便地配置用户、用户组、以及对 文件的权限控制。
用户管理
在左侧的Users上点击右键:
这样就新建了一个新用户。
组管理
为了方便对于用户权限的设置,可以将具有 相同性质的用户统一分配入一组中,这样在 对权限进行分配时只需对组进行操作,而不 用一个个地对用户操作。 通过如下操作可以新建、编辑组成员:
VisualSvn中权限分配的粒度跨度包括了svn服务器中所管理的 所有项,但是同时权限又是继承的即子节点的权限是基础于 父节点,svn节点类型:
1. 总库:
在总库下可以添加各个库,如现用的
mu2bc就是总库下的一个库。
2. 库: 在库下可以管理文件夹和文件。
获得超级用户权限Linux终端命令sudo的使用方法
获得超级用户权限Linux终端命令sudo的使用方法在Linux操作系统终端中,sudo(superuser do)是一个非常有用的命令。
它允许普通用户以超级用户的身份来执行特定的系统管理任务,而无需完全切换到超级用户账号。
本文将详细介绍sudo的使用方法,以及在Linux终端中利用sudo命令获得超级用户权限的正确步骤。
1. sudo命令的基本语法sudo命令的基本语法如下:sudo <要执行的命令>例如,要查看系统的磁盘使用情况,可以使用以下命令:sudo df -h在执行上述命令时,系统会提示你输入当前用户密码。
输入密码后,sudo会验证你的身份,并且以超级用户权限执行命令。
如需执行多条命令,可以在每个命令前都加上sudo。
2. 配置sudo的权限在默认情况下,sudo命令只允许系统的root用户和具有sudo特权组的用户使用。
如果当前用户不在sudo特权组中,你将无法使用sudo命令。
为了能够使用sudo,你需要具备以下条件之一:- 用户是系统的root用户;- 用户属于sudo特权组。
如果你是系统的root用户,可以直接跳过这一步骤,因为root用户拥有系统中所有的权限。
如果你是一般用户,并且属于sudo特权组,可以通过修改sudo配置文件来调整权限。
运行以下命令以编辑sudo配置文件:sudo visudo该命令会打开一个文本编辑器,其中包含sudo配置文件。
找到以下行:%sudo ALL=(ALL:ALL) ALL在该行之下添加以下内容来添加一个用户到sudo特权组:<你的用户名> ALL=(ALL:ALL) ALL例如,如果你的用户名是john,添加的行应该是:john ALL=(ALL:ALL) ALL保存并退出sudo配置文件。
3. sudo命令的其他用法除了常规的sudo命令外,还有一些其他用法和参数值,可以使sudo在不同情况下更加灵活有效。
以下是一些常见的sudo用法:- 在sudo执行命令时,不要求输入密码:默认情况下,sudo执行命令时会要求输入用户密码。
linux 中不输入密码运行 sudo 命令的方法
linux 中不输入密码运行 sudo 命令的方法【原创版3篇】篇1 目录1.介绍 sudo 命令2.列出几种不输入密码运行 sudo 命令的方法3.总结篇1正文【1.介绍 sudo 命令】sudo 是一个 Linux 和 Unix 系统中的命令行工具,用于以其他用户的身份执行命令。
通常情况下,使用 sudo 命令需要输入密码以确保安全。
然而,在某些情况下,我们可能希望在不输入密码的情况下运行 sudo 命令。
本文将介绍几种实现这一目标的方法。
【2.列出几种不输入密码运行 sudo 命令的方法】方法一:编辑/etc/sudoers 文件/etc/sudoers文件是sudo命令配置的核心文件。
我们可以编辑该文件,以允许特定用户在不输入密码的情况下运行sudo命令。
以下是具体步骤:1.打开终端。
2.使用文本编辑器打开/etc/sudoers文件,如:`sudo visudo`。
3.在文件末尾添加以下内容:```username ALL=(ALL) NOPASSWD: /path/to/your/command```其中,`username`是希望免密码运行 sudo 命令的用户名,`/path/to/your/command`是该用户可以运行的命令路径。
保存并关闭文件。
此时,指定的用户可以在不输入密码的情况下运行 sudo 命令。
方法二:使用 sudo visudo 命令直接授权我们可以使用 sudo visudo 命令直接在终端中授权用户运行 sudo 命令,而不修改/etc/sudoers 文件。
以下是具体步骤:1.打开终端。
2.输入以下命令,授权指定用户运行 sudo 命令:```sudo visudo```3.在打开的编辑器中,添加以下内容:```username ALL=(ALL) NOPASSWD: /path/to/your/command```其中,`username`是希望免密码运行 sudo 命令的用户名,`/path/to/your/command`是该用户可以运行的命令路径。
Linux中的sudo命令的详细解释
Linux中的sudo命令的详细解释linxu下的sudo命令主要是用来以其他身份执行命令。
下面由店铺为大家整理了linux的sudo命令的详细解释的相关知识,希望对大家有帮助!一、Linux中的sudo命令的详细解释sudo命令用来以其他身份来执行命令,预设的身份为root。
在/etc/sudoers中设置了可执行sudo指令的用户。
若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
语法sudo(选项)(参数)选项-b:在后台执行指令;-h:显示帮助;-H:将HOME环境变量设为新身份的HOME环境变量;-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;-l:列出目前用户可执行与无法执行的指令;-p:改变询问密码的提示符号;-s:执行指定的shell;-u<用户>:以指定的用户作为新的身份。
若不加上此参数,则预设以root作为新的身份;-v:延长密码有效期限5分钟;-V :显示版本信息。
参数指令:需要运行的指令和对应的参数。
二、Linux中的sudo命令的具体例子sudo命令使用$ sudo ls[sudo] password for hnlinux:hnlinux is not in the sudoers file. This incident will be reported.指定用户执行命令# sudo -u userb ls -l以root权限执行上一条命令$ sudo !!以特定用户身份进行编辑文本$ sudo -u uggc vi ~www/index.html//以uggc 用户身份编辑home 目录下www目录中的index.html 文件列出目前的权限sudo -l列出 sudo 的版本资讯sudo -V三、Linux中的sudo命令的配置配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。
关于su和sudo以及visudo的权限
关于su和sudo以及visudo的很好的介绍性文档一. 使用su 命令临时转换用户身份1、su 的适用条件和威力su命令就是转换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。
解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,能够用su来转换到root下进行添加用户的工作,等任务完成后再退出root。
我们能够看到当然通过su 转换是一种比较好的办法;通过su能够在用户之间转换,假如终极权限用户root向普通或虚拟用户转换无需密码,什么是权力?这就是!而普通用户转换到其他任何用户都需要密码验证;2、su 的用法:su [OPTION选项参数] [用户]-, -l, --login 登录并改变到所转换的用户环境;-c, --commmand=COMMAND 执行一个命令,然后退出所转换到的用户环境;至于更周详的,请参看man su ;3、su 的范例:su 在不加任何参数,默认为转换到root用户,但没有转到root用户家目录下,也就是说这时虽然是转换为root用户了,但并没有改变root登录环境;用户默认的登录环境,能够在/etc/passwd 中查得到,包括家目录,SHELL定义等;$ suPassWord:[root@localhost[beinan@localhost ~] beinan]# pwd/home/beinansu 加参数- ,表示默认转换到root用户,并且改变到root用户的环境;$[beinan@localhost ~] $ su -Password:[root@localhost ~]#pwd/home/beinan[beinan@localhost ~] pwd/rootsu 参数- 用户名$ su - root 注:这个和su -[beinan@localhost ~] 是相同的功能;Password:[root@localhost ~]# pwd/root$ su - Linuxsir 注:这是转换到[beinan@localhost ~] linuxsir用户Password: 注:在这里输入密码;$ pwd[linuxsir@localhost ~] 注:查看用户当前所处的位置;/home/linuxsir$ id[linuxsir@localhost ~] 注:查看用户的UID和GID信息,主要是看是否转换过来了;uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)[linuxsir@localhost $~]$ su - -c ls[beinan@localhost ~] 注:这是su的参数组合,表示转换到root用户,并且改变到root 环境,然后列出root家目录的文档,然后退出root用户;Password: 注:在这里输入root的密码;anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot $ pwd[beinan@localhost ~] 注:查看当前用户所处的位置;/home/beinan$ id[beinan@localhost ~] 注:查看当前用户信息;uid=500(beinan) gid=500(beinan) groups=500(beinan)4、su的优缺点;su 的确为管理带来方便,通过转换到root下,能完成任何系统管理工具,只要把root的密码交给任安全因素;比如系统有10个用户,而且都参和管理。
sudo权限配置以及自己一些使用
sudo权限配置以及⾃⼰⼀些使⽤下⾯是在中标麒麟5.0中所作更改。
我在给普通⽤户赋予了root权限后,不想输⼊密码,在/etc/sudoers中做了如下修改才有效果:。
另外,我想⽤有管理员权限的⽤户,在脚本中启动应⽤程序,但是脚本中有⾃⼰编译的库路径,这时,脚本中不能存在sudo。
所以,⽤了两个脚本来执⾏,有点绕。
看下⾯截图。
start.sh:1.sh:双击start.sh ,会启动 myTest 应⽤程序。
当然,⾸先要给 start.sh和1.sh执⾏权限。
(chmod u+x start.sh)。
为什么要给普通⽤户root权限呢?为什么不直接root登录呢?⼩⽼弟,你的问题有点多啊。
好吧,因为甲⽅爸爸让这么做的。
也不知道有没更好办法来实现上述功能。
⾸先要禁⽌root的⽤户登录ssh 在ssh配置⽂件⾥⾯把root⽤户no掉,⼀般公司不允许⽤第三⽅软件直接root登陆。
⼀、linux给⽤户添加sudo权限:有时候,linux下⾯运⾏sudo命令,会提⽰类似:xxxis not in the sudoers file. This incident will be reported.这⾥,xxx是⽤户名称,然后导致⽆法执⾏sudo命令,这时候,如下解决:进⼊超级⽤户模式。
也就是输⼊"su -",系统会让你输⼊超级⽤户密码,输⼊密码后就进⼊了超级⽤户模式。
(当然,你也可以直接⽤root ⽤)添加⽂件的写权限。
也就是输⼊命令"chmod u+w /etc/sudoers"。
编辑/etc/sudoers⽂件。
也就是输⼊命令"vim /etc/sudoers",进⼊编辑模式,找到这⼀⾏:"root ALL=(ALL) ALL"在起下⾯添加"xxx ALL= (ALL) ALL"(这⾥的xxx是你的⽤户名),然后保存退出。
visudo精确用户赋权(sudo)
sudo的工作过程如下:1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo 的权限2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认3,若密码输入成功,则开始执行sudo后续的命令4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)5,若欲切换的身份与执行者的身份相同,也不需要输入密码visudo使用vi打开/etc/sudoers文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息visudo需要root权限[plain]view plaincopy1.[hadoop@localhost ~]$ visudo2.visudo:/etc/sudoers:权限不够3.visudo:/etc/sudoers:权限不够使用visudo命令打开sudo配置文件[plain]view plaincopy1.## Sudoers allows particular users to run various commands as2.## the root user, without needing the root password.3.## 该文件允许特定用户像root用户一样使用各种各样的命令,而不需要root用户的密码4.##5.## Examples are provided at the bottom of the file for collections6.## of related commands, which can then be delegated out to particular7.## users or groups.8.## 在文件的底部提供了很多相关命令的示例以供选择,这些示例都可以被特定用户或9.## 用户组所使用10.##11.## This file must be edited with the 'visudo' command.12.## 该文件必须使用"visudo"命令编辑13.14.## Host Aliases15.## Groups of machines. You may prefer to use hostnames (perhaps using16.## wildcards for entire domains) or IP addresses instead.17.## 对于一组服务器,你可能会更喜欢使用主机名(可能是全域名的通配符)18.## 、或IP地址,这时可以配置主机别名19.# Host_Alias FILESERVERS = fs1, fs220.# Host_Alias MAILSERVERS = smtp, smtp221.22.## User Aliases23.## These aren't often necessary, as you can use regular groups24.## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname25.## rather than USERALIAS26.## 这并不很常用,因为你可以通过使用组来代替一组用户的别名27.# User_Alias ADMINS = jsmith, mikem28.29.## Command Aliases30.## These are groups of related commands...31.## 指定一系列相互关联的命令(当然可以是一个)的别名,通过赋予该别名sudo权限,32.## 可以通过sudo调用所有别名包含的命令,下面是一些示例33.34.## Networking 网络操作相关命令别名35.# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient36., /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig37., /sbin/mii-tool38.39.## Installation and management of software 软件安装管理相关命令别名40.# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum41.42.## Services 服务相关命令别名43.# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig44.45.## Updating the locate database 本地数据库升级命令别名46.# Cmnd_Alias LOCATE = /usr/bin/updatedb47.48.## Storage 磁盘操作相关命令别名49.# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe50., /bin/mount, /bin/umount51.52.## Delegating permissions 代理权限相关命令别名53.# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp54.55.## Processes 进程相关命令别名56.# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall57.58.## Drivers 驱动命令别名59.# Cmnd_Alias DRIVERS = /sbin/modprobe60.61.# Defaults specification62.63.#64.# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.65.# You have to run "ssh -t hostname sudo <cmd>".66.# 一些环境变量的相关配置,具体情况可见man soduers67.Defaults requiretty68.69.Defaults env_reset70.Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"71.Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"72.Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"73.Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"74.Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"75.76.Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin77.78.## Next comes the main part: which users can run what software on79.## which machines (the sudoers file can be shared between multiple80.## systems).81.## 下面是规则配置:什么用户在哪台服务器上可以执行哪些命令(sudoers文件可以在多个系统上共享)82.## Syntax(语法):83.##84.## user MACHINE=COMMANDS 用户登录的主机=(可以变换的身份)可以执行的命令85.##86.## The COMMANDS section may have other options added to it.87.## 命令部分可以附带一些其它的选项88.##89.## Allow root to run any commands anywhere90.## 允许root用户执行任意路径下的任意命令91.root ALL=(ALL) ALL92.93.## Allows members of the 'sys' group to run networking, software,94.## service management apps and more.95.## 允许sys中户组中的用户使用NETWORKING等所有别名中配置的命令96.# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES,LOCATE97., DRIVERS98.99.## Allows people in group wheel to run all commands100.## 允许wheel用户组中的用户执行所有命令101.%wheel ALL=(ALL) ALL102.103.## Same thing without a password104.## 允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令105.# %wheel ALL=(ALL) NOPASSWD: ALL106.107.## Allows members of the users group to mount and unmount the108.## cdrom as root109.## 允许users用户组中的用户像root用户一样使用mount、unmount、chrom命令110.# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom111.112.## Allows members of the users group to shutdown this system113.## 允许users用户组中的用户关闭localhost这台服务器114.# %users localhost=/sbin/shutdown -h now115.116.## Read drop-in files from /etc/sudoers.d (the # here does not mean a comme nt)117.## 读取放置在/etc/sudoers.d/文件夹中的文件(此处的#不意味着这是一个声明)118.#includedir /etc/sudoers.d。
sudo及visudo用法
sudo及visudo⽤法visudo 编辑sudoers⽂件1.命令功能bisudo命令是专门⽤来编辑/etc/sudoers⽂件,同时提供语法检查等功能。
/etc/sudoes⽂件是sudo命令的配置⽂件。
2.语法格式visudo option选项说明visudo –c ⼿动执⾏语法检查3.使⽤范例范例1 执⾏sudo 对普通⽤户cxf和joe授权。
范例1 执⾏sudo 对普通⽤户cxf和joe授权。
[root@cxf home]# visudo #编辑配置⽂件相当于vim /etc/sudoers⽂件....joe ALL=(ALL) #将joe提权为root⾝份cxf ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel #授权cxf可以以root⾝份添加或删除⽤户权限分别对joe和cxf做不同的授权。
sudo 以另⼀个⽤户⾝份执⾏命令1.命令功能通过sudo命令,可以让普通⽤户执⾏指定的命令或程序,拥有超级⽤户的权限。
细化不能命令授权的指定权限。
2.语法格式sudo option选项说明选项选项说明-l列出当前⽤户可以执⾏的命令。
只有在sudoers⽂件中才能使⽤该选项-h列出使⽤⽅法,并退出-u已指定⽤户的⾝份执⾏命令,后⾯跟除了root以外的其他⽤户,可以是⽤户名,也可以是uid。
-b在后台执⾏指定的命令3.使⽤范例查看哪些⽤户可以配置了sudo[root@cxf ~]# tail -l /etc/sudoerschu ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel范例1 chu账号通过sudo命令,添加删除账号添加账号test1账号[chu@cxf ~]$ sudo passwd test1更改⽤户 test1 的密码。
新的密码:⽆效的密码:过于简单化/系统化⽆效的密码:过于简单重新输⼊新的密码:passwd:所有的⾝份验证令牌已经成功更新。
sudo用户提权
sudo⽤户提权从编写 sudo 配置⽂件/etc/sudoers开始;sudo的配置⽂件是/etc/sudoers ,我们可以⽤他的专⽤编辑⼯具visodu ,此⼯具的好处是在添加规则不太准确时,保存退出时会提⽰给我们错误信息;配置好后,可以⽤切换到您授权的⽤户下,通过sudo -l 来查看哪些命令是可以执⾏或禁⽌的;/etc/sudoers ⽂件中每⾏算⼀个规则,前⾯带有#号可以当作是说明的内容,并不执⾏;如果规则很长,⼀⾏列不下时,可以⽤\号来续⾏,这样看来⼀个规则也可以拥有多个⾏;/etc/sudoers 的规则可分为两类;⼀类是别名定义,另⼀类是授权规则;别名定义并不是必须的,但授权规则是必须的;3、/etc/sudoers 配置⽂件中别名规则别名规则定义格式如下:Alias_Type NAME = item1, item2, ...或Alias_Type NAME = item1, item2, item3 : NAME = item4, item5别名类型(Alias_Type):别名类型包括如下四种Host_Alias 定义主机别名;User_Alias ⽤户别名,别名成员可以是⽤户,⽤户组(前⾯要加%号)Runas_Alias ⽤来定义runas别名,这个别名指定的是“⽬的⽤户”,即sudo 允许切换⾄的⽤户;Cmnd_Alias 定义命令别名;NAME 就是别名了,NMAE的命名是包含⼤写字母、下划线以及数字,但必须以⼀个⼤写字母开头,⽐如SYNADM、SYN_ADM或SYNAD0是合法的,sYNAMDA或1SYNAD是不合法的;item 按中⽂翻译是项⽬,在这⾥我们可以译成成员,如果⼀个别名下有多个成员,成员与成员之间,通过半⾓,号分隔;成员在必须是有效并事实存在的。
什么是有效的呢?⽐如主机名,可以通过w查看⽤户的主机名(或ip地址),如果您只是本地机操作,只通过hostname 命令就能查看;⽤户名当然是在系统中存在的,在/etc/paswd中必须存在;对于定义命令别名,成员也必须在系统中事实存在的⽂件名(需要绝对路径);item成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias 制约,定义什么类型的别名,就要有什么类型的成员相配。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sudo的工作过程如下:1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo 的权限2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认3,若密码输入成功,则开始执行sudo后续的命令4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)5,若欲切换的身份与执行者的身份相同,也不需要输入密码visudo使用vi打开/etc/sudoers文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息visudo需要root权限[plain]view plaincopy1.[hadoop@localhost ~]$ visudo2.visudo:/etc/sudoers:权限不够3.visudo:/etc/sudoers:权限不够使用visudo命令打开sudo配置文件[plain]view plaincopy1.## Sudoers allows particular users to run various commands as2.## the root user, without needing the root password.3.## 该文件允许特定用户像root用户一样使用各种各样的命令,而不需要root用户的密码4.##5.## Examples are provided at the bottom of the file for collections6.## of related commands, which can then be delegated out to particular7.## users or groups.8.## 在文件的底部提供了很多相关命令的示例以供选择,这些示例都可以被特定用户或9.## 用户组所使用10.##11.## This file must be edited with the 'visudo' command.12.## 该文件必须使用"visudo"命令编辑13.14.## Host Aliases15.## Groups of machines. You may prefer to use hostnames (perhaps using16.## wildcards for entire domains) or IP addresses instead.17.## 对于一组服务器,你可能会更喜欢使用主机名(可能是全域名的通配符)18.## 、或IP地址,这时可以配置主机别名19.# Host_Alias FILESERVERS = fs1, fs220.# Host_Alias MAILSERVERS = smtp, smtp221.22.## User Aliases23.## These aren't often necessary, as you can use regular groups24.## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname25.## rather than USERALIAS26.## 这并不很常用,因为你可以通过使用组来代替一组用户的别名27.# User_Alias ADMINS = jsmith, mikem28.29.## Command Aliases30.## These are groups of related commands...31.## 指定一系列相互关联的命令(当然可以是一个)的别名,通过赋予该别名sudo权限,32.## 可以通过sudo调用所有别名包含的命令,下面是一些示例33.34.## Networking 网络操作相关命令别名35.# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient36., /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig37., /sbin/mii-tool38.39.## Installation and management of software 软件安装管理相关命令别名40.# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum41.42.## Services 服务相关命令别名43.# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig44.45.## Updating the locate database 本地数据库升级命令别名46.# Cmnd_Alias LOCATE = /usr/bin/updatedb47.48.## Storage 磁盘操作相关命令别名49.# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe50., /bin/mount, /bin/umount51.52.## Delegating permissions 代理权限相关命令别名53.# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp54.55.## Processes 进程相关命令别名56.# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall57.58.## Drivers 驱动命令别名59.# Cmnd_Alias DRIVERS = /sbin/modprobe60.61.# Defaults specification62.63.#64.# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.65.# You have to run "ssh -t hostname sudo <cmd>".66.# 一些环境变量的相关配置,具体情况可见man soduers67.Defaults requiretty68.69.Defaults env_reset70.Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"71.Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"72.Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"73.Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"74.Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"75.76.Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin77.78.## Next comes the main part: which users can run what software on79.## which machines (the sudoers file can be shared between multiple80.## systems).81.## 下面是规则配置:什么用户在哪台服务器上可以执行哪些命令(sudoers文件可以在多个系统上共享)82.## Syntax(语法):83.##84.## user MACHINE=COMMANDS 用户登录的主机=(可以变换的身份)可以执行的命令85.##86.## The COMMANDS section may have other options added to it.87.## 命令部分可以附带一些其它的选项88.##89.## Allow root to run any commands anywhere90.## 允许root用户执行任意路径下的任意命令91.root ALL=(ALL) ALL92.93.## Allows members of the 'sys' group to run networking, software,94.## service management apps and more.95.## 允许sys中户组中的用户使用NETWORKING等所有别名中配置的命令96.# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES,LOCATE97., DRIVERS98.99.## Allows people in group wheel to run all commands100.## 允许wheel用户组中的用户执行所有命令101.%wheel ALL=(ALL) ALL102.103.## Same thing without a password104.## 允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令105.# %wheel ALL=(ALL) NOPASSWD: ALL106.107.## Allows members of the users group to mount and unmount the108.## cdrom as root109.## 允许users用户组中的用户像root用户一样使用mount、unmount、chrom命令110.# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom111.112.## Allows members of the users group to shutdown this system113.## 允许users用户组中的用户关闭localhost这台服务器114.# %users localhost=/sbin/shutdown -h now115.116.## Read drop-in files from /etc/sudoers.d (the # here does not mean a comme nt)117.## 读取放置在/etc/sudoers.d/文件夹中的文件(此处的#不意味着这是一个声明)118.#includedir /etc/sudoers.d。