liunx 查找文件用户权限问题

liunx 用户管理和ROOT权限控制
我的图书馆
liunx 用户管理和ROOT权限控制
liunx 用户管理  建立一个新的用户包括两个步骤,第一步是使用useradd命令完成一个新用户的初始化设置工作;第二步是用passwd为这个新用户设置密码。例如,我们要给系统添加一个用户叫floatboat,密码为fan2001z,那相关的操作是:  useradd floatboat &回车&  这时候系统没有任何显示。接着:  passwd floatboat &回车&  系统显示:  Changing password for user floatboat  New UNIX password:  你输入:  fan2001z&回车&  注意,由于linux并不采用类似windows的密码回显(显示为*号)――为避免你输入密码时被人注意到有多少位――所以,输入的这些字符你是看不见的。  系统显示:  Retype new UNIX password:  你再重新输入一次密码,然后回车确认,这时系统会显示:  passwd:all authentication tokens updated successfully  表示你修改密码成功了。  到这里,新用户的创建工作就算完成了。下面,我们再补充一些有关增加新用户的常识:  1、useradd所做的初始化操作已经包括在/home目录下为floatboat帐号建立一个名为floatboat的主目录。如果你不想使用这个缺省的目录,而希望把他的主目录放在/home/goal里(还放在/home下,只是一种良好的习惯,没有其他什么特别的要求),可以使用useradd的参数-d,命令如下:  useradd -d /home/goal floatboat  2、useradd的初始化操作还包括为用户单独建立一个与用户名同名的组(floatboat组)。这叫用户私有组的机制,与默认组机制相对应。对用户分组一是方便管理,二是可以明确权限。复杂的我们将在以后的深入内容中探讨。我们如果想让此用户加入一个已有的组的话,可以使用-g参数。例如我们想让floatboat加入webusers组,那么可以使用以下命令:  useradd -g webusers floatboat  同样的,我们还可以使用-G参数使他同时加入多个组,例如webusers和ftpusers:  useradd -G ftpusers,webusers floatboat  3、passwd命令为一个用户设置密码,但它实质上是一个修改密码的程序。只有超级用户和用户自己可以修改密码,其它的普通用户没有给他修改密码的权利。用户密码的组成要尽量的复杂,最好包括字母、数字和特殊符号,而且最好设成6位以上。太短passwd程序不允许,只是单纯的字母或单纯的数字,passwd也会有意见。你都会看见passwd出现的提示的,不要害怕,仔细看看到底它是怎么说的:)  4、你在增加一个新用户的时候,也可以设置用户登录的shell。缺省的,系统提供了/bin/bash。你如果非要指定的话,可以使用-s 参数就可以了。例如  useradd -d /www -s /usr/bin/passwd floatboat  注意,这些参数是可以一块使用的,如上例所示,它表示增加新用户,并把其主目录路径设置在/www,登录的shell为/usr/bin/passwd。关于shell的更详细的说明,请参考下面的修改用户的个人设置相关内容。
&&&& 创建一个和ROOT一样的用户
&&&& useradd -u 0 -o -g 0 floatboat&& 这样就有一个和ROOT一样的用户了
&&&& -u -g 都是0级 即ROOT 级 -O 是允许有相同的ID&&& 也可以使用usemod 中同样的参数即其它的参数了。这样就可以利用下面介绍的方法(pam.d/ssh)禁止ROOT用户远程登陆了  5、删除一个用户可以使用userdel命令,直接带用户名做参数就可以了。    修改用户的设置  对现有用户的修改,比较常用的主要是修改密码(使用passwd就好了),修改用户的登录shell,修改用户所属的默认组,设置帐号有效期,修改用户的说明信息等等,偶尔也会用到修改用户主目录。    修改用户的登录shell  使用chsh命令可以修改自己的shell,只有超级用户才能用chsh username为其它用户修改shell设置。注意,指定的shell必须是列入/etc/shells文件中的shell,否则该用户将不能登陆。  一般,比较常见的shells文件包括下面这些shell:  /bin/bash2  /bin/bash  /bin/sh  /bin/ash  /bin/bsh  /bin/tcsh  /bin/csh  而网管们还喜欢在里面加上/usr/bin/passwd,这是为了不然用户通过控制台或telnet登录系统,却可以使用修改帐户密码(比如在FTP里用)。以及/bin/false,也就是不让这个用户登录的意思喽^&^,连FTP也不能用。  你也可以使用usermod命令修改shell信息,如下所示:  usermod -s /bin/bash floatboat  其中/bin/bash和floatboat应取相应的shell路径文件名及用户名。  还有一种情况,就是你为用户设置了一个空的shell(就是""),也就是说,这个用户没有shell。呵呵,绝对没有在我还未曾见过,因为这种用户登录后,系统还是会给它一个shell用的。不信你试试:  usermod -s "" floatboat  这种用户根据系统的不同,会有一个sh或bash进行操作,我也没有看出功能上和其它普通用户登录有什么不同。    修改用户所属的默认组  这个功能也可以通过usermod命令来实现,使用-g参数,例如把floatboat的默认组改为nobody,可以使用如下命令:  username -g nobody floatboat  nobody在类UNIX系统中一般都意味着没有任何权限。    设置帐号有效期  如果使用了影子口令,则可以使用如下命令来修改一个帐号的有效期:  usermod -e MM/DD/YY username  例如把用户floatboat的有效期定为日:  usermod -e 12/31/01 floatboat  如果把该用户的有效期设为已经过去的时间,就可以暂时禁止该用户登录系统。    修改用户的说明信息  修改用户的说明信息,最简单的方法莫过于直接修改/etc/passwd文件,找到对应的用户记录行,例如下列行:  floatboat:x:503:503::/home/floatboat:/bin/bash  你可以直接在第四个冒号和第五个冒号之间插入该用户的说明就可以了。其实,很多用户设置都可以在这修改,比如该行最后一部分/bin/bash就是用户登录shell的设置。关于这个/etc/passwd文件,我们后面将进一步的深入探讨。    修改用户主目录  修改用户的主目录主要使用usermod命令的-d参数,例如:  usermod -d /www floatboat  这一行将floatboat的主目录改到/www。如果想将现有主目录的主要内容转移到新的目录,应该使用-m开关,如下所示:  usermod -d -m /www floatboat    文件目录的权限  linux下,每一个文件、每一个目录都有一个属主,并针对用户自己、用户所在组、其它所有帐号(组)分别设定读、写、执行三种权限。例如,我(假定是webusers组的floatboat帐户的拥有者)使用如下命令建立一个新的文件  touch mytestfile  然后我们使用ls -l mytestfile这一命令来查看这个文件的权限状态(关于ls命令,可以查阅本站的命令查询),可以得到如下的屏幕输出显示:  -rw-rw-r-- 1 floatboat webusers 0 Feb 6 21:37 mytestfile  输出由空格分为9个部分,我们比较关心第一、三、四个字段,分别表示文件权限属性、文件所有者帐户、文件所属组。  ◆使用chown命令修改文件的主人  当你新建立一个文件的时候,文件的所有者当然就是你了。这一事实只有超级用户(比如说root)才可以通过chown命令改变(例如 chown otheruser mytestfile,把mytestfile文件的属主改为otheruser)。普通用户不能把自己的文件“送”给别人,不然你把有特殊目的的程序给了root怎么办?:)  chown命令的用法比较简单。这里我先假设你现在拥有超级用户权限,那么你就可以使用如下命令将一个文件“送给”floatboat了:  chown floatboat /home/floatboat/thefileisrootcreate.txt (假定该文件是由root创建的)  修改一个目录的所有者也是类似的:  chown floatboat /home/newboat  当然,如果这个目录还有子目录及文件需要同时送给floatboat,chown也是支持-R参数的:  chown -R floatboat /home/newboat  如果你同时想修改文件/目录所属的组的话,你可以使用以下命令方便的达到目的:  chown -R floatboat.ftpusers /home/newboat  这样,不但文件主人得到了修改,文件所属的组也变成了ftpusers  ◆ 修改文件的组属性  文件所属组你倒是可以改变,前提是:  1、你的超级用户。  2、你同时属于两个或两个以上的组。  两个条件你至少具备一个,你才能够把文件所属旧组变为新组。使用如下的命令将当前目录下所有html文件所属的组改为httpd:  chgrp httpd *.html  和chown命令一样,chgrp也可以使用-R参数对一个目录内的所有文件和子目录进行递归的修改组属性。  &提示&:你可以使用不带参数的groups命令查看自己属于哪个组。    文件权限的设定是我们这一小节讨论的核心,我们主要介绍chmod命令的两种用法。    ◆使用访问字符串设置文件目录权限  正如前面所说的,每一个文件、目录都针对用户自己、用户所在组、其它所有帐号(组)分别有读、写、执行三种权限及其组合。当一个普通用户新建一个文件的时候,它默认的访问权限显示就如我们刚才所举例子的第一个字段所示。总共十位字符“-rw-rw-r--”,第一位是目录区分标志,如果是d的话,表示这是一个目录。第二到四位分别表示文件所有者的读(r:read)、写(w:write)、执行(x:execute)属性,第五到七位是文件所属组的读、写、执行权限,第八到第十位则是其它用户的读、写、执行权限。如果对应的位是相应的字母,就是有这相应权限,否则为“-”,表示没有获得这个许可。象刚才例子中的文件就是自己可读写,本组可读写,其它用户可读,所有的用户(包括自己)都不能执行它。  我们的用u、g、o分别来指代用户(user)、组(group)、其它帐户(other),就可以方便的设置文件和目录的权限了。当然,我们也可以用a来表示所有的这三项。  例如,我们要对所有perl的脚本文件设定权限,对所有用户都可以读和
ROOT权限控制
Linux是当前比较流行的网络服务器操作系统,它继承了UNIX系统安全、稳定、高效等优点。在Linux系统中Root拥有最高权限,正因如此攻击者往往以获取Root权限为目标。作为管理员如何有效地对Root进行有效管理呢?本文将从权限控制的角度,提供几个安全技巧。   演示环境
  Red Hat Enterprise Linux 5
  1、远程登录
  我们知道在RHEL系统中,默认是允许Root用户直接远程登录的。假若攻击者获取了Root的密码,然后进行远程登录,那整个服务器就沦陷了。因此,我们要做好Root的权限限制,拒绝其远程登录。这样,就算攻击者获取了Root密码,也不能通过远程登录控制服务器。限制Root远程登录的方法有很多种,笔者向大家推荐两种。
  (1)SSH限制
  我们知道SSH是Linux系统中用于远程维护管理的一个服务,类似于Windows系统中的Telnet或者远程桌面3389。通过SSH限制Root远程登录,我们需要做的就是修改SSH的配置文件。找/etc/ssh/sshd_config文件,在其中添加PermitRootLogin no。需要注意的是Linux系统是大小写敏感的,不要输错。输入完毕后,保存并退出,然后输入命令service sshd restart重启SSH服务使修改生效。这样当通过Root远程连接Linux服务器时,就会拒绝连接。
  (2)PAM认证
  我们还可以使用PAM认证模块来拒绝Root用户直接登录系统,可通过下面的操作来实现。打开/etc/pam.d/sshd文件,在第一行加入auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshduser onerr=succeed这条语句。其含义是,在登录时认证帐户和密码是否有效,只有认证通过才能登录系统,否则结束认证拒绝登录。它的认证模块是/lib/security/pam_listfile.so,认证的用户是用户(user),当然也可以是组(group),认证的方式是拒绝(deny),认证文件是/etc/sshduser,文件名及目录随意,如果认证成功就返回(succeed)。
  然后我们创建一个认证文件,可以在终端中运行命令echo "root" & /etc/sshduser来创建,当然我们也可以使用vi打开sshduser文件来加入用户。需要说明的是,当有多个用户时,每个用户占用一行。添加完成后,再使用Root直接登录服务器就可以看到登录被拒绝了。
  我们知道在Linux系统中有个su命令,利用该命令只要知道Root用户的密码,默认情况下任何人都可以切换到Root用户中进行操作。例如,一个属于users组的普通用户gslw可以通过su命令切换到Root用户中.
  因此,我们需要对SU进行限制,只允许特定组的用户才能SU到Root用户。使用的方法还是通过PAM认证模块来实现。我们先前控制ssh服务,是使用/etc/pam.d/sshd文件,当然控制用户使用su命令就需要对
  /etc/pam.d/su文件进行修改。直接打开该文件进行修改,或者在终端命令窗口输入命令vi /etc/pam.d/su,然后去掉其中#auth required pam_wheel.so use_uid的注释即可。
  其含义是,使用pam_wheel.so文件来检查当前用户的UID,如果不是whell组的用户就直接拒绝。现在我们通过gslw用户登录系统,然后su到Root可以看到被拒绝。当然,要使其可以su到Root需要将其加入了wheel组才可以。
 3、Root分权
  大家知道,由于Root具有最高的权限,经常用root用户来管理系统,会给系统带来一定的安全隐患。比如,一条无意识输入的破坏性的命令有可能会给系统带来毁灭性的打击。另外,如果系统被植入了嗅探工具,如果用root登录会造成root口令被窃取。因此我们要消减Root的权限,可以让其它用户来完成Root的一些工作,避免过多地使用Root用户。
  如何为Root分权,要根据服务器的性质来确定。比如一个Linux平台的apache服务器,作为管理员经常使用的命令应该是诸如/usr/local/apache2/bin/apachect1 start/stop/restart这样的是启动/重启/停止服务器的命令。我们可以为此创建一个用户gslw来管理apache服务器,我们知道普通用户是没有权限来启动apache服务器的。这里要用到sudo命令,通过它为gslw用户加入扩展权限使其可以管理apache服务器。
  利用Vi或者直接进入/etc/pam.d打开sudo文件,然后在其中添加一行gslw ALL=(ALL) /usr/local/apache2/bin/apachectl命令就可以了。该命令分成四个字段,依次为用户名、作用对象、以谁的身份运行以及运行的命令。当然,我们也可以加入gslw localhost=(root) /usr/local/apache2/bin/apachectl start,这样过滤更严格一些。最后保存退出后,使用gslw用户登录系统就可以运行/usr/local/apache2/bin/apachectl start命令了。上面只是举例,大家可以根据自己的需要在sudo文件中添加相应的命令行。不过,需要说明的是命令一定要严格过滤,不要赋权过大。
总结:Linux下的权限控制是非常严格的,但也非常灵活,我们可以根据自己的安全需求进行布防。当然,关于Root权限的控制策略和方法还有很多,希望本文提供的思路对大家有所帮助
[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢linux权限操作
权限:read,write,execute。对应R,W,E,读写执行。
用户:主人(user),组别(group),其他用户(other)
文件权限设置
1.字母相对方式设置权限
chmod u+rwx
//给文件的主人增加读写执行的权限
chmod g-rx
//给文件的同组用户删除读执行的权限
chmod u+/-rwx,g+/-rwx,o+/-rwx filename
1.每个单元+,-只能使用一个
2.可以同时给一个组或多个组设置权限,组别之间使用‘,’分割
3.每个单元的权限可以使rwx的一个或多个。
2.数字绝对方式设置权限
0:没有权限
3:写,执行
5:读,执行
7:读写执行
chmod ABC filename //ABC分别代表主人,同组,其他的数字权限。
chmod 753 filename //主人读写执行,组别读执行,其他写执行。
简单的shell脚本
目录对权限的操作
读r:是否可以查看目录内部的文件信息,
写W:是否可以给该目录删除,修改文件,
执行X:指定用户是否可以cd指令进入该目录。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Linux目录权限_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
Linux目录权限
Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读,只写和可执行三种。
Linux目录权限简介
只读权限表示只允许读其内容,而禁止对其做所有的更改操作。可执行权限表示允许将该文 件作为一个程序执行。文件被创建时,文件自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要 的所有组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者能允许同组用户有权访问文件,还能将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;和属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的周详信息时,最左边的一列为文件的访问权限。
Linux目录权限例一:$ ls -l sobsrc. tgz
-rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是个文件。如果第一个字符是横线,表示是个非目录的文件。如果是d,表示是个目录。
Linux目录权限例二:
-rw-r--r--拆分如下:
组用户 其他用户
是文件sobsrc.tgz 的访问权限,-表示sobsrc.tgz是个普通文件;rw-是sobsrc.tgz的属主有读写权限;和sobsrc.tgz属主同组的用户只有读权限(r--);其他用户也只有读权限(r--)。
确定了一个文件的访问权限后,用户能利用Linux系统提供的chmod命令来重新设定不同的访问权限。也能利用chown命令来更改某个文件或目录的。利用chgrp命令来更改某个文件或目录的用户组。
下面分别对这些命令加以介绍。
Linux目录权限chmod 命令
chmod命令是非常重要的,用于改动文件或目录的访问权限。用户用他控制文件或目录的访问权限。
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
Linux目录权限文字设定法
chmod [who] [+ | - | =] [mode] 文件名?
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或他们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即和文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。他是系统默认值。
操作符号能是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程式的文本到交换设备上。
u 和文件属主拥有相同的权限。
g 和和文件属主同组的用户拥有相同的权限。
o 和其他用户拥有相同的权限。
文件名:以空格分开的要改动权限的文件列表,支持。
在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example
使同组和其他用户对文件example 有读权限。
Linux目录权限数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3 个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:
chmod [mode] 文件名?
chmod 764 f01 //把文件f01的权限设置为764,即rwx:4+2+1=7; rw-:4+2=6; r--:4
Linux目录权限文字设定法举例:
例1:$ chmod a+x sort
即设定文件sort的属性为:
文件属主(u) 增加执行权限
和文件属主同组用户(g) 增加执行权限
其他用户(o) 增加执行权限
例2:$ chmod ug+w,o-x text
即设定文件text的属性为:
文件属主(u) 增加写权限
和文件属主同组用户(g) 增加写权限
其他用户(o) 删除执行权限
例3:$ chmod u+s a.out
假设执行chmod后a.out的权限为(能用ls ? l a.out命令来看):
?rws–x–x 1 inin users 7192 Nov 4 14:22 a.out
并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“?rw——-”,即该文件只有其属主具有读写权限。
当其他用户执行a.out这个程式时,他的身份因这个程式暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具有所有权限),这就是s的功能。
因此,在整个系统中特别是root本身,最佳不要过多的设置这种类型的文件(除非必要)这样能保障系统的安全,避免因为某些程式的bug而使系统遭到入侵。
例4:$ chmod a?x mm.txt
$ chmod ?x mm.txt
$ chmod ugo?x mm.txt
以上这三个命令都是将文件mm.txt的执行权限删除,他设定的对象为所有使用者。
Linux目录权限数字设定法举例:
例1: $ chmod 644 mm.txt
即设定文件mm.txt的属性为:
-rw-r–r– 1 inin users 1155 Nov 5 11:22 mm.txt
文件属主(u)inin 拥有读、写权限
和文件属主同组人用户(g) 拥有读权限
其他人(o) 拥有读权限
例2: $ chmod 750 wch.txt
-rwx-rx— 1 inin users 44137 Nov 12 9:22 wchtxt
即设定wchtxt这个文件的属性为:
本人(u)inin 可读/可写/可执行权
和文件主同组人(g) 可读/可执行权
其他人(o) 没有所有权限
Linux目录权限chgrp命令
功能:改动文件或目录所属的组。
语法:chgrp [选项] group filename?
该命令改动指定指定文件所属的用户组。其中group能是用户组ID,也能是/etc/group文件中用户组的组名。文件名是以空格分开的要改动属组的文件列表,支持通配符。如果用户不是该文件的属主或终极用户,则不能改动该文件的组。
该命令的各选项含义为:
- R 递归式地改动指定目录及其下的所有子目录和文件的属组。
例1:$ chgrp –R book /opt/local /book
改动/opt/local /book/及其子目录下的所有文件的属组为book。
功能:更改某个文件或目录的属主和属组。这个命令也非常常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
语法:chown [选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组。用户能是用户名或用户ID。组能是组名或组ID。文件是以空格分开的要改动权限的文件列表,支持通配符。
该命令的各选项含义如下:
- R 递归式地改动指定目录及其下的所有子目录和文件的拥有者。
- v 显示chown命令所做的工作。
例1:把文件shiyan.c的改为wang。
$ chown wang shiyan.c
例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。
$ chown -R wang.users /his
.Linux命令大全[引用日期]
清除历史记录关闭linux用户权限和用户组详解
Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录Linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在
/etc/shadow 中核对该 UID 对应的 PWD 是否正确,正确则登录到该用户的 shell。
root:x:0:0:root:/root:/bin/bash
用户名:密码X:用户id0:组id0:描述信息root:用户根目录/root/:用户登录后的shell
x 是表示此处为空;采用shadow passwd,影子密码
帐号名:用户名称,root 是系统默认最高管理员用户。
密码:由于密码保存在 /etc/shadow 文件,所以这里用 “x” 表示,如果没有设置口令,则该项为空。
用户ID:系统内部用户的唯一标识ID,其中用户 ID 有以下几种:
0 代表系统管理员,如果想建立一个系统管理员,可以先建立一个普通帐户,再将其用户ID改为 0 。
1-500 系统预留 ID,500 以上是普通用户 ID。
组ID:用户组标识 ID ,/etc/group 有关。
描述信息:帐号的描述。
用户根目录:用户登录起始目录,登录系统后首先进入此目录。root 用户默认是 /root,普通用户则是 /home/用户名。
用户登录shell:用户登录系统后使用的 shell。
1.2 /etc/shadow详解:
早期的 unix 系统,用户帐号、密码都保存在 passwd ,即使密码以密文方式保存在 passwd 中,但 passwd 文件对所有用户可读,存在安全隐患。现在 Linux 使用“shadow”保存密码的密文,使用passwd文件保存用户帐号信息。“shadow” 文件只有管理员用户才可以访问。
cat /etc/shadow | tail -4
[root@localhost ~]# cat /etc/shadow | tail -4
tcpdump:!!:16820::::::
avahi-autoipd:!!:16820::::::
oprofile:!!:16820::::::
unbound:!!:16897::::::
总共9个字段
root:$1$ZowvYCeU$ZCF.3th3FJNEoAB2EZoHw.:99:7:::
帐户名称:用户名称,和 passwd 的意思相同。
密码: 用户密码的密文。
密码栏的第一个字符为 “*” 表示这个用户不能登录,如果不想让此用户登录,在他前面加个“*” ;
第一个字符为“!”,则表示该用户被禁用,新创建的用户还没密码时就是禁用状态,使用“!!”表示;
第一个字符为“空”,表示用户没有密码,登录时不需要密码。
上次改动密码的日期:密码的最后更改日期,为什么是 15181 ?因为 Linux 计算日期是以日作为1,日就是366,因此推导我修改密码的日期表示为 15181。
密码不可被改动的天数:表示多久后才可以改密码。“0” 表示可以随时更改。
密码需要重新更改天数:必须在这个时间内更新密码,否则帐号将会暂时失效。99999,表示密码不需要更新。
密码变更期期限快到前的警告期:帐号密码失效期限快到时,系统依照这个字段设定,发出警告,提醒用户密码将过期请更新密码,默认是 7。
帐号失效期:如果过了警告期没有更新密码,使得密码失效,并且用户在这个字段限定的时间内没有向管理员报告,让帐号重新激活,这个用户将暂时失效。
帐号取消日期:这个字段也使用1970年以来的日期计算方法,表示用户在此字段规定的时间之后将无法再使用。
保留:保留字段。
1.3 /etc/group 详解:
从第一行开始分析,一共有四项,依次为:
组名称:用户组名称了。
组密码:一般不需设定,很少使用群组登录。但这个密码也保存在 /etc/shadow 中。
组ID:用户组ID了。
支持帐号的名称:这个群组的所有帐号。如果你想让david用户属于root这个群组,在第一行最后加上 “,david” 注意添加的时候没有空格。
2,用户、用户组管理操作详解:
2.1 adduser 添加用户:
adduser [-u uid][-g group][-d home][-s shell]
-u:直接给出userID
-g:直接给出GID
-d:直接将根目录建立在已存在目录
-s:定义shell
添加用户 garfield
adduser garfield
通过前面介绍的三个用户管理文件检验用户 garfield 的添加是否成功:
当我们新建用户时,通过 /etc/login.defs 和 /etc/default/useradd 两文件实现新用户的基本设置。
cat /etc/login.defs
cat /etc/default/useradd
这个文件中SKEL这个选项指定用户的根目录内容是从 /etc/skel 这个目录下复制过去。
[root@localhost skel]# ll -a
drwxr-xr-x.
2 root root
59 Jan 21 02:40 .
drwxr-xr-x. 119 root root 8192 Apr 19 00:59 ..
-rw-r--r--.
1 root root
18 Nov 20 13:02 .bash_logout
-rw-r--r--.
1 root root
193 Nov 20 13:02 .bash_profile
-rw-r--r--.
1 root root
231 Nov 20 13:02 .bashrc
dr-xr-x---
2 root root 4096 Jan
drwxr-xr-x 23 root root 4096 Jan
8 01:32 ..
-rw-------
1 root root 1670 Feb 28 21:35 .bash_history
-rw-r--r--
1 root root
176 Dec 29 04:24 .bash_profile
-rw-r--r--
1 root root
176 Dec 29 04:24 .bashrc
-rw-------
1 root root 1201 Jan
8 01:33 .mysql_history
-rw-------
1 root root 1249 Jan
8 04:13 .mysql_history.TMP
用户家目录下的.bash_history文件保存了历史信息
.bash_profile执行.bashrc文件设置命令的别名,并设置环境变量PATH
.bashrc文件中执行了/etc/bashrc这个文件中一些常用的别名设置,并用户可以再.bashrc文件下设置一些自定义的命令别名,例如:
alias rm='rm -i'
这样每次只需rm的时候就会提示是否删除,如果没有这个别名,则rm可能会直接将文件删除。
alias cp='cp -i'
alias mv='mv -i'
2.2 passwd 设置用户密码:
passwd [用户名] 设置密码
2.3 usermod 禁用、启用帐号:
usermod -L [用户名] 禁用帐号
usermod -U [用户名] 启用帐号
usermod -e YYYY-MM-DD [用户名]
usermod 命令禁用和启用账号通过在 /etc/shadow 中相应用户密码位之前添加和删除
"!" 实现的。
2.4 groupadd 创建组:
[-g gid [-o]] [-r] [-f] group
2.4.1 创建用户的时候指定用户属于那个用户组:
-g group_name user_name
2.4.2 更改用户的用户组:
–g group_name user_name
2.4.3 将用户添加到其它组:
–G group_name user_name
[zm@qtlop01 ~]$ useradd
-bash: /usr/sbin/useradd: Permission denied
gpasswd命令
功能:管理组
用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
gpasswd groupname:如系统有个peter账户,该账户本身不是groupname群组的成员,使用newgrp需要输入密码即可
让使用者暂时加入成为该组成员,之后peter建立的文件group也会是groupname。所以该方式可以暂时让peter建立文
件时使用其他的组,而不是peter本身所在的组。
所以使用gpasswd groupname设定密码,就是让知道该群组密码的人可以暂时切换具备groupname群组功能的.
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 liunx 修改用户权限 的文章

 

随机推荐