| 在Unix系统中,管理员往往不只是一个人,若每位管理员都用root身份进行管理工作,根本无法弄清楚谁该做什么。所以最好的方式是:管理员当系统的root,然后创建一些普通用户,分配一部分系统管理工作给他们。 我们不可以使用su让他们直接变成root,因为这些用户都必须知道root的密码,这种方法很不安全,而且也不符合我们的分工需求。一般的做法是利用权限的设置,依工作性质分类,让特殊身份的用户成为同一工作组,并设置工作组权限。例如:要wwwadm这位用户负责管理网站数据,一般Apache Web Server的进程httpd的所有者是www,您可以设置用户wwwadm与www为同一工作组,并设置Apache默认存放网页目录/usr/local/httpd/htdocs的工作组权限为可读、可写、可执行,这样属于此工作组的每位用户就都可以进行网页的管理了。 但这并不是最好的解决办法,例如管理员想授予一个普通用户关机的权限,这时使用上述的办法就不是很理想。这时您也许会想,我只让这个用户以root身份执行shutdown命令就行了。完全正确!可惜在通常的Unix系统中无法实现这一功能,不过已经有了工具可以实现这样的功能—sudo。 sudo通过维护一个特权到用户名映射的数据库将特权分配给不同的用户,这些特权可由数据库中所列的一些不同的命令来识别。为了获得某一特权项,有资格的用户只需简单地在命令行输入sudo与命令名之后按照提示再次输入口令(用户自己的口令,不是root用户口令)。例如,sudo允许普通用户格式化磁盘,但是却没有赋予其他的root用户特权。 sudo是一个免费软件,我们可以从网址:http://www.courtesan.com/sudo/下载它的最新版本,也可以获得关于sudo的很多有用的文档资料,在笔者撰写本文时它的最新版本为sudo-1.6.6.tar.gz,执行如下步骤进行安装: # gzip -d sudo-1.6.6.tar.gz(解压缩) # tar xvf sudo-1.6.6.tar(解包) # cd sudo-1.6.6 # ./configure (搜集系统的各项信息,配置Makefile文件,为实际编译做准备) # make(编译) # make install(安装) 这是sudo源代码版本的安装步骤,您也可以去下载sudo的二进制安装包,如Solaris的package包或Linux的rpm包等,这里不再赘述。 sudo工具由文件/etc/sudoers进行配置,该文件包含所有可以访问sudo工具的用户列表并定义了他们的特权。一个典型的/etc/sudoers条目如下: liming ALL=(ALL) ALL 这个条目使得用户liming作为超级用户访问所有应用程序,如用户liming需要作为超级用户运行命令,他只需简单地在命令前加上前缀sudo。因此,要以root用户的身份执行命令format,liming可以输入如下命令: # sudo /usr/sbin/format 注意:命令要写绝对路径,/usr/sbin默认不在普通用户的搜索路径中,可以加入此路径:PATH=$PATH:/usr/sbin;export PATH。 另外,不同系统命令的路径不尽相同,可以使用命令“whereis 命令名”来查找其路径。 这时会显示下面的输出结果: We trust you have received the usual lecture from the local System Administrator. It usually boils down to these two things: #1) Respect the privacy of others. #2) Think before you type. Password: 如果liming正确地输入了口令,命令format将会以root用户身份执行。 注意:配置文件/etc/sudoers必须使用命令/usr/local/sbin/visudo来编辑。只要把相应的用户名、主机名和许可的命令列表以标准的格式加入到文件/etc/sudoers并保存就可以生效。 再看一个例子: 管理员需要允许“baoshi”用户在主机“sun”上执行“reboot”和“shutdown”命令,在/etc/sudoers中加入: baoshi sun=/usr/sbin/reboot,/usr/sbin/shutdown 注意:命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患。 然后保存退出,baoshi用户想执行reboot命令时,只要在提示符下运行下列命令: $ sudo /usr/sbin/reboot 输入正确的密码,就可以重启服务器了。 如果您想对一组用户进行定义,可以在组名前加上%,对其进行设置,如: %cuug ALL=(ALL) ALL 另外,还可以利用别名来简化配置文件。别名类似组的概念,有用户别名、主机别名和命令别名。多个用户可以首先用一个别名来定义,然后在规定他们可以执行什么命令的时候使用别名就可以了,这个配置对所有用户都生效。主机别名和命令别名也是如此。注意使用前先要在/etc/sudoers中定义:User_Alias、Host_Alias、Cmnd_Alias项,在其后面加入相应的名称就可以了,也以逗号分隔开,举例如下: Host_Alias SERVER=no1 User_Alias ADMINS=liming,baoshi Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot ADMIN SERVER=SHUTDOWN 再看这个例子: ADMINS ALL=(ALL) NOPASSWD: ALL 表示允许ADMINS不用口令执行一切操作,其中“NOPASSWD:”项定义了用户执行操作时不需要输入口令。 sudo命令还可以加上一些参数执行,完成一些辅助的功能,如: $ sudo -l 会显示出类似这样的信息: User liming may run the following commands on this host: (root) /usr/sbin/reboot 说明用户liming被root允许执行/usr/sbin/reboot命令。这个参数可以使用户查看自己目前可以在sudo中执行哪些命令,方便使用。 在命令提示符下键入sudo命令会列出所有参数,其他一些参数如下: -V 显示版本编号; -h 显示sudo命令的使用参数; -v 因为sudo在第一次执行时或是在N分钟内没有执行(N预设为5)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码; -k 将会强迫使用者在下一次执行sudo时询问密码(不论有没有超过N分钟); -b 将要执行的指令放在背景中执行; -p prompt 可以更改问密码的提示语,其中%u会代换为使用者的账号名称,%h会显示主机名称; -u username/#uid 不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的UID); -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell ; -H 将环境变数中的HOME(宿主目录)指定为要变更身份的使用者的宿主目录(如不加-u参数就是系统管理者root); <command> 要以系统管理者身份(或以-u更改为其他人)执行的指令。 |
相关推荐
基于CH32X035的USB双K型热电偶温度计:硬件设计、冷端补偿与信号放大详解
本文详细介绍了基于CH32X035单片机设计USB双K型热电偶温度计的完整方案。重点解析了硬件设计中的核心挑战:如何利用精密运放GS8552-SR进行信号放大,以及采用NTC热敏电阻和查表法实现精确的冷端补偿。项目通过USB供电通信,实现了双路高精度温度测量与显示,为电子爱好者和工程师提供了实用的参考设计。
linux(基础)
LINUX基础 1.赋权 1.1chmod命令 格式 chmod -R 777 目录/文件 权限为一共9位,每3个为一组,第一组文件或文件夹所属用户的权限(创建文件的用户),第二组文件或文件夹用户所属组其它用户的权限,第三组其它用户的权限,最前边的‘-’表示这是一个文件如果是‘d’表示这是一个文件夹 r:表示读权限权重为4,w:表示写权限权重为2,x:表示执行权限权重为1 1.2 chomn 命令(更改文件所属用户的命令) 格式 c...
华为OD技术面八股_C++_05
汇总华为OD技术面C++方向技术面八股文,提供详细解答。
Unix 设置用户ID和文件访问权限
设置用户ID为了说明问题,我们首先创建一个可执行程序,名字为setuid,其文件信息如下:-rwxrwxr-x 1 lhl lhl 7265 4月 6 21:20 setuid*通过finger命令可以知道系统当前的登录信息:Login Name Tty Idle Login Time Office Office Phone lhl lhl
UNIX权限控制
UNIX权限控制
Unix下授权用户cron
unix下授权用户执行cron权限 HP-UX平台: (1)以root帐号登陆主机;(2)修改/var/adm/cron/cron.allow文件,增加用户username,然后保存、退出就可以了。 AIX平台:(1)以root帐号登陆主机;(2)修改/var/adm/cron/cron.allow文件,增加username;(3)执行以下的命令,让配
linux修改权限的两种方法,unix中两种修改权限的方法?
用户必须具有相应的权限才可以修改,修改权限的命令chmod ,有如下两种方法:1、字符方式who: u文件属主权限,g同组用户权限,o其他用户权限,a所有用户(文件属主、同组及其他用户);operator: +增加权限,-取消权限,=设定权限;permission: r读权限,w写权限,x执行权限。chmod a-x file rw- rw- rw- 收回所有用户的执行权限chmod og-w f...
Linux改变下放文件权限,Unix中将root帐户的权限下放给其他用户
三、临时权限SUID。将本来只有root帐户才能够运行的进程下放给其他用户运行,有专家就把这种权限的转移叫做临时权限SUID。大部分的Unix系统都有这么一个特殊的权限设置模式,允许用户更新一些敏感的系统文件。往往在这些文件的用户权限组里面有一个特殊的字母s,就代表一种特殊的模式,即属主身份设置位。利用这种模式系统工程师可以让进程暂时拥有文件所有者的特权。因此当一个非特权用户执行passwd命令时...
unix 特殊权限
dba 组下两个不同的用户sqlplus 看到sid 状态不一样 怀疑是文件目录权限问题 chmod 6751 $ORACLE_HOME/bin/oraclell oracle -rwsr-s--x 1 oraepd dba 259421264 Jun 8 19:44 oracle unix特殊权限 具体参考:htt
特殊权限
1,特殊权限SUID 2, 特殊权限SGID 3, 特殊权限SBIT 4, 文件的属性( chattr,lsattr) 5, UMASK 默认权限 —————————————————————————— suid使用: 需求:默认情况下,所有的普通用户,都无法查看/etc/shadow,有没有办法能够让所有的普通用户都能查看/etc/shadow 方式1: chmod 004 /etc/...
Linux学习笔记——文件的隐藏属性、默认权限和特殊权限
一、文件的隐藏属性 文件的隐藏属性用于规定文件的特殊用法,尤其在系统安全方面的相关特性。 语法 chattr [ -RV ] [ -v version ] [ mode ] file1,file2… 其中mode部分是由+ - =和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。 -R:递归处理,将指令目录下的所有文件及子目录一并处理; -v<版本编号>:设置...
赋予普通用户特殊权限
例如:只给某个用户,关机的权限。 /etc/sudoers保存的是普通用户可以执行特殊权限的信息Visudo : 编辑/etc/sudoers文件sudo 某命令 表示以超级用户身份执行命令 $visudo /etc/sudoers利用visudo编辑此文件,普通vi打开为只读,不能编辑 user1 localhost=/usr/sbin/useradd user2 localhost...
capsh 赋予capability 实现特殊操作
可以给普通用户capsh 赋予capability 实现特殊操作,避免使用sudo权限 ,如使用setuser,当然这样也有一定安全风险,赋予的用户应该是原计划给予sudo的用户。 如下为测试netstat 的代码,如果要更安全,可以是golang等语言开发定制user列表等的控制,比如禁止set为root用户。 [xiehq@140 ~]$ getcap ./capsh ./capsh = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,
plsql查看用户权限_Linux必备知识:特殊权限
Linux系统特殊权限概述之前我们已经讲过r(读)、w(写)、x(执行)这三种普通全年,但是我们在查询系统文件权限时会发现出现了一些其他的权限字母例:[root@db04 ~]# ll /usr/bin/passwd-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd[root@db04 ~]# ll /usr/bin/write-rwx...
mysql grant什么意思_MySQL grant 语法的详细解析
我们大家都知道MySQL数据库赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grantselectontestdb.*tocommon_user@'%'grantinsertontestdb.*tocommon_user@'%'grantupdateonte...
把一个用户的相关权限赋予另外一个用户
今天同事提出了一个这样的需求,创建1个用户,此用户对相关业务的所有表只有增删改查的操作,因此有了下文的相关操作 业务原来的用户是xxxx 新建的用户为yyyy 1.先创建用户yyyy oracle> sqlplus “/ as sysdba” SQL> CREATE USER yyyy IDENTIFIED BY yyyy...
oracle将一个用户的权限赋予给另外一个用户
将A用户所有表的权限赋予B用户 select 'grant select on '||owner||'.'||object_name|| ' to B;' from dba_objects where object_type='TABLE' and wner='A';
linux用户态和内核态理解
1、特权级 Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0级特权级别和3级特权级。也就是说在UNIX/LINUX系统中,一条工作在0级特权级的指令具有了CP
Linux/Unix修改用户和权限
修改所属用户 chown 属主名 文件名 chown user test 将文件test的属主改为user 修改所属用户组 chgrp 组名 文件名 chgrp group test 将文件test的用户组改为group 修改权限 chmod 755 文件名 mkdir /usr/devos 在/usr目录下创建与用户名同名的目录devo
unix 权限_Unix权限的简单方法
unix 权限I recently had to deliver a project hosted in Linux and I lost count of the number of times I had to fiddle with file and directory permissions… Yes I understand how they work; yes I can work t...
基于vitis2021.2的ZYNQMP源码嵌入式系统开发教程
本教程基于XILINX的XCZU47DR芯片进行嵌入式系统开发教程的讲解,由于XCZU47DR是XILINX推出的较新工艺的芯片,使用vivado2018.3的版本开发可能存在不兼容等问题,本文使用vivado2021.2进行FPGA工程的搭建、使用vitis2021.2进行嵌入式工程的搭建,atf可信固件、u-boot和linux内核在虚拟机的ubuntu系统中使用开源gcc进行修改与编译。开发教程包含vivado工程搭建(无PL)、vitis fsbl文件生成、vitis pmu固件生成、atf可信固件编译、vitis设备树源码生成、u-boot源码修改与编译、linux内核修改与编译等章节内容。本文所有操作均实测验证,其中gcc为v10.2的版本。
127




被折叠的 条评论
为什么被折叠?



