用户-组-文件权限linux用户
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个帐号,之后以这个帐号的身分步入系统。用户的帐号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制她们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每位用户帐号都拥有一个唯一的用户名和各自的口令。用户在登入时键入正确的用户名和口令后,就才能步入系统和自己的主目录。
实现用户帐号的管理,要完成的工作主要有如下几个方面:用户帐号的添加、删除与更改。用户口令的管理。用户组的管理。
Linux系统用户帐号的管理
用户帐号的管理工作主要涉及到用户帐号的添加、修改和删掉。添加用户帐号就是在系统中创建一个新帐号,之后为新帐号分配用户号、用户组、主目录和登陆Shell等资源。刚添加的帐号是被锁定的,难以使用。
1、添加新的用户帐号
使用useradd命令,句型结构如下
useradd选项用户名
其中各选项涵义如下:
代码:-ccomment指定一段注释性描述。
-d目录指定用房主目录,假若此目录不存在,则同时使用-m选项,可以创建主目录。
-g用户组指定用户所属的用户组。
-G用户组,用户组指定用户所属的附加组。
-sShell文件指定用户的登陆Shell。
-u用户号指定用户的用户号,若果同时有
-o选项,则可以重复使用其他用户的标示号。
用户名指定新帐号的登陆名。
例1:
复制代码代码如下:
useradd–d/usr/test-mtest
此命令创建了一个用户test,其中-d和-m选项拿来为登陆名test形成一个主目录/usr/test(/usr为默认的用房主目录所在的父目录)。
例2:
复制代码代码如下:
useradd-s/bin/sh-ggroup–Gadm,roothell
此命令新建了一个用户hell,该用户的登陆Shell是/bin/shlinux系统介绍,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
这儿可新建组:#groupaddgroup及groupaddadm降低用户帐号就是在/etc/passwd文件中为新用户降低一条记录,同时更新其他系统文件如/etc/shadow,/etc/group等。
2、删除账号
假如一个用户的帐号不再使用,可以从系统中删掉。删掉用户帐号就是要将/etc/passwd等系统文件中的该用户记录删掉,必要时还删掉用户的主目录。删掉一个已有的用户帐号使用userdel命令,其格式如下:
句型如下:
userdel选项用户名
常用的选项是-r,它的作用是把用户的主目录一起删掉。
代码如下:
userdelhell
此命令删掉用户sam在系统文件中(主要是/etc/passwd,/etc/shadow,/etc/group等)的记录,同时删掉用户的主目录。
3、修改账号
更改用户帐号就是按照实际情况修改用户的有关属性,如用户号、主目录、用户组、登录Shell等。更改已有用户的信息使用usermod命令linux修改组的权限,其格式如下:
句型如下:
usermod选项用户名
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这种选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
代码如下:
usermod-s/bin/zsh-d/home/z–gdeveloperhell
此命令将用户hell的登陆Shell更改为zsh,主目录改为/home/z,用户组改为developer。
usermod命令
4、用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户帐号刚创建时没有口令,并且被系统锁定,难以使用,必须为其指定口令后才可以使用,虽然是指定空口令。指定和更改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它更改自己的口令。命令的格式为:代码:
passwd选项用户名可使用的选项:
代码:
-l锁定口令,即禁用帐号。
-u口令解锁。
-d使帐号无口令。
-f逼迫用户上次登陆时更改口令。假如默认用户名,则更改当前用户的口令。
比如,假定当前用户是hell,则下边的命令更改该用户自己的口令:
代码如下:
$passwdOldpassword:**Newpassword:*Re-enternewpassword:*
若果是超级用户,可以用下述方式指定任何用户的口令:
复制代码代码如下:
passwdhell
Newpassword:*Re-enternewpassword:*
普通用户更改自己的口令时,passwd命令会先寻问原口令linux修改组的权限,验证后再要求用户输入两遍新口令,假如两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不须要晓得原口令。
为了系统安全起见,用户应当选择比较复杂的口令,比如最好使用8位长的口令,口令中包含有小写、小写字母和数字,而且应当与姓名、生日等不相同。
为用户指定空口令时,执行下述方式的命令:
代码如下:
passwd-dhell
此命令将用户hell的口令删掉,这样用户hell下一次登陆时,系统就不再寻问口令。
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登入,比如:
linux下创建用户(二)
二、Linux系统用户组的管理
每位用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和更改。组的降低、删除和更改实际上就是对/etc/group文件的更新。
组的概念如右图
1、增加一个新的用户组使用groupadd命令。其格式如下:
句型如下:
groupadd选项用户组
可以使用的选项有:代码:-gGID指定新用户组的组标示号(GID)。-o通常与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
例1:
代码如下:
groupaddgroup1
此命令向系统中降低了一个新组group1,新组的组标示号是在当前已有的最大组标示号的基础上加1。
例2:
代码如下:
groupadd-g101group2
此命令向系统中降低了一个新组group2,同时指定新组的组标示号是101。
2、如果要删掉一个已有的用户组,使用groupdel命令,其格式如下:
代码如下:
groupdel用户组
比如:
代码如下:
groupdelgroup1
此命令从系统中删掉组group1。
3、修改用户组的属性使用groupmod命令。其句型如下:
句型如下:
groupmod选项用户组
常用的选项有:代码:-gGID为用户组指定新的组标示号。-o与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。-n新用户组将用户组的名子改为新名子
例1:
代码如下:
groupmod-g102group2
此命令将组group2的组标示号更改为102。
例2:
代码如下:
groupmod–g10000-ngroup3group2
此命令将组group2的标示号改为10000,组名更改为group3。
分配权限
chown[选项]...[所有者][:[组]]文件...
通过chown改变文件的拥有者和群组。在修改文件的所有者或所属群组时,可以使用用户名称和用户辨识码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限通常为管理员。
必要参数:
-c显示修改的部份的信息
-f忽视错误信息
-h修补符号链接
-R处理指定目录以及其子目录下的所有文件
-v显示详尽的处理信息
-deference作用于符号链接的指向,而不是链接文件本身
改变拥有者和群组代码如下:
chownmail:maillog2012.log改变拥有者为mail群组为mail
chownroot:log2012.log改变拥有者为root
chown:maillog2012.log改变群组为mail
改变指定目录以及其子目录下的所有文件的拥有者和群组
代码如下:
chown-Rhell:hell/usr/hell/改变目录下所有文件的拥有者为hell群组为hell组
chmod拿来更改某个目录或文件的访问权限。
句型:chmod【-R】权限值文件名1文件名2
-R:对目录及该目录下的所有文件和子目录都进行相同的操作;
touchc;新建文件c
chmod777c;ll#文件所有者可以改变用户权限
chmod-R744dir#把目录dir及该目录下的所有文件和子目录的读写权限改为744
【符号模式】
chmod{a、u、g、o}{+-=}{rwx}文件名1文件名2
a、u、g、o表示要赋于权限的用户的类,a代表所有的用户,u代表文件的所有者自身,g代表和所有者同组群的用户,o代表组外的其他用户+-=拿来降低、删除或设置权限永久免费linux服务器,+表示降低权限,-表示删掉权限,=表示设置权限rwx表示要降低、删除或设置的权限值,r表示读权限,w表示写权限,x表示执行权限
chmodu+xfile#降低所有者对file的执行权
chmoda-rfile#删掉所有的人对file的读权限
chmodg=rxfile#设置组群对file的具有读和执行的权限
chmoda+r,g=rwfile#降低所有人对file的读权限同时,设置所属群组读写权限
加壳
su、sudo、sudosu、sudo-i的用法和区别
suroot和su-root有哪些区别?
注:用户切换工具(su和su-这两个切换用户是有区别的。)
su命令和su-命令最大的本质区别就是:后者只是切换了root身分,但Shell环境依然是普通用户的Shell;而前者连用户和Shell环境一起切换成root身分了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户之后。pwd一下,发觉工作目录依然是普通用户的工作目录;而用su-命令切换之后,工作目录弄成root的工作目录了。用echo$PATH命令看一下su和su-之后的环境变量有何不同。要从当前用户切换到其它用户,推荐使用su-命令,这样连shell环境也切换了。
suroot输入root密码后切换之root用户并且pwd目录不变
su-root输入root密码后切换之root用户并且pwd目录/root
sudo通常加的是命令
sudo-iroot与sudo-root、sudo-i,sudo-,sudoroot疗效相同提示输入密码时该密码为当前帐户的密码要求执行该命令的用户必须在sudoers中才可以su须要的是切换后帐户的密用法为“su帐户名称”
sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级帐户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。su:切换到某甲用户模式,提示输入密码时该密码为切换后帐户的密码,用法为“su帐户名称”。假如前面不加帐户时系统默认为root帐户,密码也为超级帐户的密码。没有时间限制。sudo-i:为了频繁的执行个别只有超级用户能够执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前帐户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通帐户时可以执行“exit”或“logout”。要求执行该命令的用户必须在sudoers中才可以
sudo-i直接运行sudo命令加-i参数要求执行该命令的用户必须在sudoers中才可以sudosu运行sudo命令给su命令加壳,运行su命令。要求执行该命令的用户必须在sudoers中才可以sudo-i运行结果PWD=/rootsudosu运行结果PWD=/home/用户名(当前用房主目录)
基本权限UGO以及三个相关命令
Linux系统中文件的ugo权限是Linux进行权限管理的基本形式。本文将介绍ugo权限的基本概念。
文件的所有者和组Linux文件的ugo权限把对文件的访问者界定为三个类别:文件的所有者、组和其他人。所谓的ugo就是指user(亦称为owner)、group和other三个词组的首字母组合。
文件的所有者文件的所有者通常是创建该文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的Linux主机上,可以通过文件的所有者来分辨一个文件属于某个用户。其实,一个用户也无权查看或修改其它用户的文件。
文件所属的组如果有几个用户合作开发同一个项目,假如每位用户只能查看和更改自己创建的文件就太不便捷了,也就谈不上哪些合作了。所以须要一个机制准许一个用户查看和更改其它用户的文件,此时就用到组的概念的。我们可以创建一个组,之后把须要合作的用户都添加都这个组中。在设置文件的访问权限时,准许这个组中的用户对该文件进行读取和更改。
其他人若果我想把一个文件共享给系统中的所有用户该如何办?通过组的形式似乎是不合适的,由于须要把系统中的所有用户都添加到一个组中。而且系统中添加了新用户该怎样办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和更改。
使用ll命令可以查看文件的属性信息:
drwxrwxr-x2aikeyaikey611月1414:571-rw-rw-r--1aikeyaikey011月1414:571.txt
类型[属主权限属组权限其他权限]链接属主属组大小创建时间文件名
文件类型第一组的第一个字符描述文件的类型,常见的类型有如下几种:
d表示目录
-表示普通文件
l表示链接文件
b表示块设备文件
c表示字符设备文件
s表示socket文件
下边让我们来详尽的解释一下读写执行的权限。
r(read):可以读取文件的实际内容,例如读取文本文件内的文字等。
w(write):可以编辑、增加、删除文件的内容(但不含删掉该文件)。
x(execute):该文件具有可以被系统执行的权限。
可以看出,对于文件来说,rwx主要针对的是文件的内容。保存用户和组的文件用户和组的信息分别记录在/etc/passwd、/etc/group文件中。可以直接以读取文本文件的形式查看其内容:
权限对象属主:u属组:g其他人:o所有人:a(u+g+o)
权限类型读:r=4写:w=2执行:x=1
ACL使用解读
ACL:访问控制列表,主要用于对文件或则目录权限的设定
怎样使用:
getfacl[FILE]:查看此文件acl权限
setfacl[-bkndRLPvh][{-m|-x}acl_spec][{-M|-X}acl_file]file...
特殊权限:
mask权限:此权限为最大有效权限,当为用户或则组设定的权限,与mask权限有相同的权限时,才为最终的权限
常用选项:
-m:创建新的acl权限
-x:删掉指定的acl权限
-b:删掉所有的acl权限
-d:设定默认acl权限
-k:删掉默认的acl权限
-R:以递归的方法设定acl权限
查看当前文件或目录的acl权限:
#getfacltest
对用户设定acl权限:
#setfacl-mu:liu:rwxtest
对组设定acl权限:
#setfacl-mg:tgroup:rxtest
设定最大有效权限mask:
#setfacl-mm:rxtest此前为用户liu设定的权限为rwx,设定mask权限后,最终有效的权限为rx
删掉用户权限:
#setfacl-xu:liutest可以见到此前为用户liu设定的权限早已没有了
删掉组权限:
#setfacl-xg:tgrouptest可以见到此前为组tgroup设定的权限早已没有了
设定递归权限:
#setfacl-R-mu:liu:rxtest在此目录下的所有文件或则目录,用户liu都只有rx权限
删掉全部权限:
#setfacl-btest
设定默认权限:
#setfacl-md:u:liu:rxtest
删掉默认权限:
#setfacl-ktest