Unix中赋予用户特殊权限(转)

ubuntu用户管理与权限操作实例 ubuntu用户管理与权限操作实例昨天在载此文时提到都要把文件及目录权限的操作也会独立成文来给大家介绍,今天特地学习了用户管理和权限操作的例程,现总结如下。这些命令基本都是我在自己电脑上运行过后能够实现此功能,我才把他们加进来,希望对大家有所帮助,也希望和大家多交流^_^一个实例 例子:假设有两个用户bill和jane,他们都有音乐CD集,并要创建一个共享目录,在该目录下他们各自存储自己的音乐 阅读详情
在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更改为其他人)执行的指令。

Unix 环境高级编程 之 理解 rws 权限 开始学习Linux里面的文件权限时,也是蒙蒙的,似懂非懂(尤其是s权限,当时看书的时候一时理解了,过段时间就忘记了)。最近看Unix 环境高级编程的时候,看到第四章第四节(设置用户ID和设置组ID)时才感觉一下明白了? 一、摘自网上查到的关于rwx、rws、rwt的解释: 1、rwx: linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人 这些身份对于文档又有下面权限 阅读详情

相关推荐

基于CH32X035的USB双K型热电偶温度计:硬件设计、冷端补偿与信号放大详解

本文详细介绍了基于CH32X035单片机设计USB双K型热电偶温度计的完整方案。重点解析了硬件设计中的核心挑战:如何利用精密运放GS8552-SR进行信号放大,以及采用NTC热敏电阻和查表法实现精确的冷端补偿。项目通过USB供电通信,实现了双路高精度温度测量与显示,为电子爱好者和工程师提供了实用的参考设计。

weixin_42153793的博客 127

linux(基础)

LINUX基础 1.赋权 1.1chmod命令 格式 chmod -R 777 目录/文件 权限为一共9位,每3个为一组,第一组文件或文件夹所属用户权限(创建文件的用户),第二组文件或文件夹用户所属组其它用户权限,第三组其它用户权限,最前边的‘-’表示这是一个文件如果是‘d’表示这是一个文件夹 r:表示读权限权重为4,w:表示写权限权重为2,x:表示执行权限权重为1 1.2 chomn 命令(更改文件所属用户的命令) 格式 c...

qq_46561663的博客 549

华为OD技术面八股_C++_05

汇总华为OD技术面C++方向技术面八股文,提供详细解答。

qq_45776114的博客 331

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

飞翔de刺猬 2607

UNIX权限控制

UNIX权限控制

实践助梦想成长 874

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)执行以下的命令,让配

GreenCode 1942

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...

weixin_35044945的博客 1731

Linux改变下放文件权限,Unix中将root帐户的权限下放给其他用户

三、临时权限SUID。将本来只有root帐户才能够运行的进程下放给其他用户运行,有专家就把这种权限移叫做临时权限SUID。大部分的Unix系统都有这么一个特殊权限设置模式,允许用户更新一些敏感的系统文件。往往在这些文件的用户权限组里面有一个特殊的字母s,就代表一种特殊的模式,即属主身份设置位。利用这种模式系统工程师可以让进程暂时拥有文件所有者的特权。因此当一个非特权用户执行passwd命令时...

weixin_32801895的博客 744

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

sap basis的blog 1871

特殊权限

1,特殊权限SUID 2, 特殊权限SGID 3, 特殊权限SBIT 4, 文件的属性( chattr,lsattr) 5, UMASK 默认权限 —————————————————————————— suid使用: 需求:默认情况下,所有的普通用户,都无法查看/etc/shadow,有没有办法能够让所有的普通用户都能查看/etc/shadow 方式1: chmod 004 /etc/...

juw520007的博客 315

Linux学习笔记——文件的隐藏属性、默认权限特殊权限

一、文件的隐藏属性 文件的隐藏属性用于规定文件的特殊用法,尤其在系统安全方面的相关特性。 语法 chattr [ -RV ] [ -v version ] [ mode ] file1,file2… 其中mode部分是由+ - =和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。 -R:递归处理,将指令目录下的所有文件及子目录一并处理; -v<版本编号>:设置...

qq_42683219的博客 676

赋予普通用户特殊权限

例如:只给某个用户,关机的权限。 /etc/sudoers保存的是普通用户可以执行特殊权限的信息Visudo : 编辑/etc/sudoers文件sudo 某命令 表示以超级用户身份执行命令 $visudo /etc/sudoers利用visudo编辑此文件,普通vi打开为只读,不能编辑 user1 localhost=/usr/sbin/useradd user2 localhost...

weixin_30435261的博客 173

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,

weixin_40455124的博客 1481

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...

weixin_39573598的博客 507

mysql grant什么意思_MySQL grant 语法的详细解析

我们大家都知道MySQL数据库赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grantselectontestdb.*tocommon_user@'%'grantinsertontestdb.*tocommon_user@'%'grantupdateonte...

weixin_32946431的博客 3664

把一个用户的相关权限赋予另外一个用户

今天同事提出了一个这样的需求,创建1个用户,此用户对相关业务的所有表只有增删改查的操作,因此有了下文的相关操作 业务原来的用户是xxxx 新建的用户为yyyy 1.先创建用户yyyy oracle> sqlplus “/ as sysdba” SQL> CREATE USER yyyy IDENTIFIED BY yyyy...

weixin_33806509的博客 684

oracle将一个用户权限赋予给另外一个用户

将A用户所有表的权限赋予B用户 select 'grant select on '||owner||'.'||object_name|| ' to B;' from dba_objects  where object_type='TABLE'  and wner='A';

lyy_yang的专栏 1万+

linux用户态和内核态理解

1、特权级       Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0级特权级别和3级特权级。也就是说在UNIX/LINUX系统中,一条工作在0级特权级的指令具有了CP

buptapple的专栏 1万+

Linux/Unix修改用户权限

修改所属用户 chown  属主名 文件名 chown  user  test 将文件test的属主改为user 修改所属用户组 chgrp  组名 文件名 chgrp  group  test 将文件test的用户组改为group 修改权限 chmod 755 文件名 mkdir /usr/devos         在/usr目录下创建与用户名同名的目录devo

zhengshibo56的专栏 6167

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...

weixin_26750511的博客 1892

基于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的版本。

上一篇: BabyLinux制作过程详解(转)
下一篇: SUN系统维护命令大全
neptuner
博客等级 码龄24年 4粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值