首页 > 系统相关 >linux设置su和sudo为不需要密码

linux设置su和sudo为不需要密码

时间:2023-06-01 12:12:32浏览次数:45  
标签:bin NOPASSWD sudo su 密码 linux root

一 设置sudo为不需要密码

 

有时候我们只需要执行一条root权限的命令也要su到root,是不是有些不方便?这时可以用sudo代替。默认新建的用户不在sudo组,需要编辑/etc/sudoers文件将用户加入,该文件只能使用visudo命令,

1) 首先需要切换到root, su - (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用乎的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样)

2) 然后 visudo 或者 vi /etc/sudoers, visudo 这个和vi的用法一样,由于可能会有人不太熟悉vi,所以简要说一下步骤

移动光标,到一行root ALL=(ALL)   ALL的下一行,按a,进入append模式,输入
your_user_name ALL=(ALL)   ALL

然后按Esc,再输入:w保存文件,再:q退出

这样就把自己加入了sudo组,可以使用sudo命令了。

3) 默认5分钟后刚才输入的sodo密码过期,下次sudo需要重新输入密码,如果觉得在sudo的时候输入密码麻烦,把刚才的输入换成如下内容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL

至于安全问题,对于一般个人用户,我觉得这样也可以的。

4)如果你想设置只有某些命令可以sudo的话,your_user_name   ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD: /bin/cp, (root) NOPASSWD: /bin/chmod

 

注意: 有的时候你的将用户设了nopasswd,但是不起作用,原因是被后面的group的设置覆盖了,需要把group的设置也改为nopasswd。

joe ALL=(ALL) NOPASSWD: ALL

%admin ALL=(ALL) NOPASSWD: ALL

 

参考: 

http://blog.163.com/love-love-l/blog/static/21078304201071232234518/

 

 

二 设置su为不需要密码 如果需要对某用户su命令也不需要输入密码,则需要修改下列的:

1)切换到root权限;
2)创建group为wheel,命令为groupadd wheel;
3)将用户加入wheel group中,命令为usermod -G wheel joe;
4)修改su的配置文件/etc/pam.d/su,增加下列项:
 auth       required   pam_wheel.so group=wheel 
# Uncomment this if you want wheel members to be able to
# su without a password.
 auth       sufficient pam_wheel.so trust use_uid

至此你可以使用例如如下的命令且不需要输入密码:su joe -c command。   三 ubuntu 启用root
sudo -i
sudo passwd root

disable by below:
sudo passwd -dl root

 

1. 当用户执行sudo时,Linux系统会去寻找/etc/sudoers文件,并且这是主动的,判断用户是否有执行sudo命令的权限
2. 如果用户有执行sudo的权限,让用户输入自己的密码来确认,这里比使用root的密码强多了,赞一下
3. 如果密码输入正确,开始执行sudo后面跟的shell命令
4. 如果要切换的身份相同, 和su命令一样,也不用输入密码

hadoop ALL=(root)NOPASSWD:ALL

这样也行

hadoop ALL=(ALL) ALL

这里面不是说不需要输入密码,而是不再需要用su命令切换到root账户再去执行root账号才能执行的操作。例如在/opt下新建一个文件夹test。原来的操作是su切换到root,输入root密码,执行操作结束后exit返回到当前账户。而现在只需要sudo mkdir /opt/test,再输入自己的密码就可以搞定,类似于Ubuntu中安装系统时创建的那个账户(具有执行sudo命令的特权),因为第一次执行sudo特权命令的时候输入的密码有生命周期,所以很短时间内再次使用是不需要再输入密码的。
参考:

 

http://cosminswiki.com/index.php/How_to_let_users_su_without_password http://ag-up.com/?p=457

标签:bin,NOPASSWD,sudo,su,密码,linux,root
From: https://www.cnblogs.com/kn-zheng/p/17448562.html

相关文章

  • linux物理内存与虚拟内存
    1.查看内存占用情况$free-m-htotalusedfreesharedbuff/cacheavailableMem:7.7G1.0G5.9G385M780M6.0GSwap:7.4G1.0G6.4G 2.释放物理内存(1)释......
  • linux上限值网速、限值带宽
    Linux操作系统中的流量控制器TC(TrafficControl)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。Linux流量控制的基本原理如下图所示。  接收包从输入接口(InputInterface)进来后,经过流量限制(IngressPolicing)丢弃不符合规定的数据包,由输入多路分......
  • linux Capabiltiy 示例——以前只有root和普通用户两种权限,root的权限太大了,现在有了c
    Capabiltiy示例Capability的设定和清除下面的示例程序给当前的进程设定Capability,最后我们清除掉所设置的Capability,源代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#include<unistd.h>#include<sys/capability.h>exter......
  • LINUX查看进程的4种方法
    进程是在CPU及内存中运行的程序代码,而每个进程可以创建一个或多个进程(父子进程)。查看进程方法第一种:psauxps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在......
  • pythom3.10安装(Linux系统)
    1.下载安装包https://www.python.org/downloads/source/Python-3.10.0.tgz2.解压安装包tar-xvf  Python-3.10.0.tgz3.进行配置 ./configure--prefix=/usr/local/python34.编译安装make&&makeinstall5.建立链接sudoln-s/usr/local/python3/bin/python3.10 /......
  • JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用
    场景记录JVM中常用工具。jps:虚拟机进程状态工具jps(JVMProcessStatusTool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID。命令格式:jps[options][hostid]示例:jps-l ......
  • burpsuite_pro_v2.0beta 下载和安装使用过程
    burpsuite_pro_v2.0beta使用过程 下载地址:https://pan.baidu.com/s/1mJdRZqSr5A0W9aWEcs3ySg密码:293x  (压缩包内已包含注册机Loader) java8181下载地址:https://repo.huaweicloud.com/java/jdk/8u181-b13/  使用截图: ......
  • submit_bio
    /***submit_bio-submitabiototheblockdevicelayerforI/O*@bio:The&structbiowhichdescribestheI/O**submit_bio()isverysimilarinpurposetogeneric_make_request(),and*usesthatfunctiontodomostofthework.Botharefai......
  • lINUX iCmp协议
    ICMP是(InternetControlMessageProtocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的......
  • Linux创建socket
    staticconststructnet_proto_familyinet_family_ops={.family=PF_INET,.create=inet_create,.owner=THIS_MODULE,};/**Createaninetsocket.*/staticintinet_create(structnet*net,structsocket*sock,intprotocol,intkern)......