linux /etc/sudoers权限修改,该怎么解决
查看/etc/sudoers文件权限,如果只读权限,修改为可写权限[root@localhost ~]# ll /etc/sudoers-r--r-----. 1 root root 4030 12月 10 09:55 /etc/sudoers[root@localhost ~]# chmod 777 /etc/sudoers[root@localhost ~]# ls -l /etc/sudoers-rwxrwxrwx. 1 root root 4030 12月 10 09:57 /etc/sudoers
请教/etc/sudoers中的含义
Sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。
这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。
Sudo不是对shell的一个代替,它是面向每个命令的。
它的特性主要有这样几点: § Sudo能够限制用户只在某台主机上运行某些命令。
§ Sudo提供了丰富的日志,详细地记录了每个用户干了什么。
它能够将日志传到中心主机或者日志服务器。
§ Sudo使用时间戳文件来执行类似的“检票”系统。
当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
§ Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。
它所存放的位置默认是在/etc/sudoers,属性必须为0411。
编辑配置文件命令:visudo 默认配置文件位置:/etc/sudoers [root@localhost ~]# cat /etc/sudoers # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # Runas alias specification # User privilege specification root ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now [root@localhost ~]# 可以用visudo编辑sudoers配置文件,不过也可以直接通过修改sudoers文件实现,不过编辑之前最好看一下它的sample.sudoers文件,里面有一个相当详细的例子可以参考。
#第一部分:用户定义,将用户分为FULLTIMERS、PARTTIMERS和WEBMASTERS三类。
User_Alias FULLTIMERS = millert, mikef, dowdy User_Alias PARTTIMERS = bostley, jwfox, crawl User_Alias WEBMASTERS = will, wendy, wim #第二部分,将操作类型分类。
Runas_Alias OP = root, operator Runas_Alias DB = oracle, sybase #第三部分,将主机分类。
这些都是随便分得,目的是为了更好地管理。
Host_Alias SPARC = bigtime, eclipse, moet, anchor :\ SGI = grolsch, dandelion, black :\ ALPHA = widget, thalamus, foobar :\ HPPA = boa, nag, python Host_Alias CUNETS = 128.138.0.0/255.255.0.0 Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0 Host_Alias SERVERS = master, mail, www, ns Host_Alias CDROM = orion, perseus, hercules #第四部分,定义命令和命令地路径。
命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径! Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\ /usr/sbin/restore, /usr/sbin/rrestore Cmnd_Alias KILL = /usr/bin/kill Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \ /usr/local/bin/tcsh, /usr/bin/rsh, \ /usr/local/bin/zsh Cmnd_Alias SU = /usr/bin/su # 这里是针对不同的用户采用不同地策略,比如默认所有的syslog直接通过auth 输出。
FULLTIMERS组不用看到lecture(第一次运行时产生的消息);用户millert使用sudo时不用输入密码;以及logfile的 路径在/var/log/sudo.log而且每一行日志中必须包括年。
Defaults syslog=auth Defaults:FULLTIMERS !lecture Defaults:millert !authenticate Defaults@SERVERS log_year, logfile=/var/log/sudo.log #root和wheel组的成员拥有任何权利。
如果想对一组用户进行定义,可以在组名前加上%,对其进行设置. root ALL = (ALL) ALL %wheel ALL = (ALL) ALL #FULLTIMERS可以运行任何命令在任何主机而不用输入自己的密码 FULLTIMERS ALL = NOPASSWD: ALL #PARTTIMERS可以运行任何命令在任何主机,但是必须先验证自己的密码。
PARTTIMERS ALL = ALL #jack可以运行任何命令在定义地CSNET(128.138.243.0, 128.138.242.0和128.138.204.0/24的子网)中,不过注意前两个不需要匹配子网掩码,而后一个必须匹配掩码。
jack CSNETS = ALL #lisa可以运行任何命令在定义为CUNETS(128.138.0.0)的子网中主机上。
lisa CUNETS = ALL #用户operator可以运行DUMPS,KILL,PRINTING,SHUTDOWN,HALT,REBOOT以及在/usr/oper/bin中的所有命令。
operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\ /usr/oper/bin/ #joe可以运行su operator命令 joe ALL = /usr/bin/su operator #pete可以为除root之外地用户修改密码。
pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root #bob可以在SPARC和SGI机器上和OP用户组中的root和operator一样运行如何...
如何修改 /etc/sudoers 文件
①别名的名称可以包含大写字母。
数字、下划线。
如果是字母必须要大写,(别名为一群拥有相同属性的集合)。
②一个别名下面可以有多个成员,成员间通过半角(,)逗号隔开。
成员必须有效实际存在。
别名成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制约,定义什么类型的别名,就要有相什么类型的成员匹配。
③用户组前面必须加%号。
命令别名下的成员必须是文件或目录的绝对路径。
④指定切换用户要用()括号括起来,如果省略,则默认root用户,如果括号里是ALL,则代表能切换到所有用户。
⑤命令路径要使用全路径。
⑥别名规则每行算一个规则,一行容不下时用\续行。
另外超过一行,用反斜线换行。
⑦一般不建议先给all权限,后面排除。
用什么权限,就给什么权限。
(注意权限,语法)。
如果不需要密码直接运行命令的应该加NOPASSWD参数。
⑧禁止某类程序或命令执行,要在命令动作前面加上“!”号,并放在允许执行命令之后。
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。
如何修改/etc/sudoers文件
有时候我们执行sudo的时候,出现xxx is not int the sudoers file告诉我们当前用户不是sudoer,所以我们要把当前用户添加进去,步骤如下:1 修改/etc/sudoers文件,进入超级用户,因为没有写权限,所以要先把写权限加上chmod u+w /etc/sudoers。
2 编辑/etc/sudoers文件,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"zhc ALL=(ALL) ALL"(这里的zhc是你的用户名),然后保存。
3 最后恢复没有写权限模式,撤销文件的写权限,chmod u-w /etc/sudoers。
然后我们就可以用zhc用户来编辑root的文件了,比如
Linux怎么添加用户成为sudoers
目标:安装64位Debian系统,采用网络安装方式,桌面系统采用Gnome。
一、需要准备的内容:1、Debian安装盘 (1)下载安装盘镜像 我选择的是debian-testing-amd64-netinst版(下载地址 ) 。
(2)制作U盘安装盘 方法一:使用netbootin 。
方法二:下载boot.img.gz安装到U盘,再将iso文件放到U盘根目录下。
参见Boot Debian from an USB device 。
这种方法的缺点是其是用fat16格式格式化U盘,因此分区最大只支持256M,因此没办法用CD的iso文件。
备注:试用UltraISO制作,写入成功,但安装盘开机启动失败。
原因也许是缺少启动文件。
Ubuntu自带的startup disk creator可能只支持Ubuntu的安装盘镜像,不支持其他发行版的镜像。
2、网络客户端及依赖文件:mentohust_0.3.4-1_amd64.deb、libpcap0.8_1.1.1-8_amd64.deb 网络客户端选择支持锐捷认证的mentohust。
可下载for Ubuntu的64位包 。
另外mentohust依赖于libpcap0.8 (或libpcap0.9,libpcap1.0),而libpcap0.8依赖于multiarch-support ,这两个文件是刚安装的系统里没有的,因此均需一一下载。
3、镜像地址列表:sources.list 为了通过aptitude安装软件时有较快的网速,还需要准备好sources.list 。
教育网推荐用中科大的源。
4、在制作好的U盘安装盘中新建一个文件夹,命名为folder,将在第2、3点中下载的文件放在里面。
二、安装步骤1、将U盘与电脑连接,重启电脑,在BIOS中设置从U盘启动。
2、通过U盘安装 安装过程中需要选择的地方不多,主要是语言、地区、键盘布局、设置用户名和密码、网络设置、硬盘分区等。
均较简单,网上教程也很多,这里不再作详细介绍。
需要注意的是因为我们选择的是通过网络安装,所以最开始只会安装一个最基本的系统,而没有桌面环境,所以在安装时语言最好选择英文而不是中文,否则安装完后终端上很多字会变成“◆”,无论中文英文。
这个问题是由于内核不支持中文引起的,无法通过安装中文字体解决。
除非是用CD镜像或DVD镜像进行安装,否则安装语言最好选英文。
在基本系统安装完毕之后,系统会提示你将U盘或CD、DVD取出,以免重启后又重新安装系统。
此时将U盘拔出即可,然后重启系统。
3、安装网络客户端 (1)登陆并挂载U盘 重启后,用你的用户名和密码登陆系统。
用su命令登陆到根用户。
用fdisk -l列出当前的硬盘设备,查看U盘在什么地方。
我的在/dev/sdb1上。
用mount命令加载U盘: # mount /dev/sdb1 /media/usb (2)安装mentohust # cd /media/usb/folder # dpkg -i multiarch-support_2.13-21_amd64.deb # dpkg -i libpcap0.8_1.1.1-10_amd64.deb # dpkg -i mentohust_0.3.4-1_amd64.deb (3)登陆mentohust 先要启动网卡和获取ip地址。
# ipconfig eth0 up # dhclient eth0 然后是登陆mentohust。
mentohust的参数如下: -h 显示本帮助信息 -k -k(退出程序) 其他(重启程序) -w 保存参数到配置文件 -u 用户名 -p 密码 -n 网卡名 -i IP[默认本机IP] -m 子网掩码[默认本机掩码] -g 网关[默认0.0.0.0] -s DNS[默认0.0.0.0] -o Ping主机[默认0.0.0.0,表示关闭该功能] -t 认证超时(秒)[默认8] -e 心跳间隔(秒)[默认30] -r 失败等待(秒)[默认15] -l 允许失败次数[0表示无限制,默认8] -a 组播地址: 0(标准) 1(锐捷) 2(赛尔) [默认0] -d DHCP方式: 0(不使用) 1(二次认证) 2(认证后) 3(认证前) [默认0] -b 是否后台运行: 0(否) 1(是,关闭输出) 2(是,保留输出) 3(是,输出到文件) [默认0] -y 是否显示通知: 0(否) 1~20(是) [默认5] -v 客户端版本号[默认0.00表示兼容xrgsu] -f 自定义数据文件[默认不使用] -c DHCP脚本[默认dhclient] -q 显示SuConfig.dat的内容(如-q/path/SuConfig.dat) 假设你的用户名是john,密码是123,则可以参考下面的例子: #mentohust -ujohn -p123 -neth0 -b1 -w4、设置源列表 # mv /etc/apt/source.list /etc/apt/source.list.bak # cp /media/usb/folder/source.list /etc/apt/ 然后就可以卸载U盘了。
因为U盘是写入为启动盘,所以要用eject -r。
eject -rv /dev/sdb1 然后拔出U盘即可。
5、更新软件信息列表、更新系统 # aptitude update # aptitude upgrade6、安装sudo、less、bash-completion # aptitude install sudo less bash-completion 设置sudo # visudo 找到root ALL=(ALL) ALL一行。
假设你的用户名是john,则可在下面添加一行: john ALL=(ALL)ALL 然后,保存并退出即可。
注销并重新登陆后就可以使用sudo,而不用登陆到根用户了。
# exit $ logout7、安装x-window和gnome 如果不准备很详细地自定义要安装哪些gnome组件,只需一条命令即可: # aptitude install gnome-core8、安装中文输入法ibus(拼音和五笔) # aptitude install ibus ibus-table ibus-gtk ibus-gtk3 ibus-qt4 ibus-pinyin ibus-table ibus-table-wubi9、安装中文字体(文泉驿) # aptitude install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy10、安装无线网卡驱动11、安装浏览器iceweasel和flash插件 iceweasel,其实就是firefox的debian分支。
# aptitude install iceweasel flashplugin-nonfree12、安装虚拟机virtualbox。
然后在virtualbox中再装一个windows系统,需要用到windows时...
转载请注明出处51数据库 » debian /etc/sudoers