Linux学习--No.6Linux用户与文件权限

之前摸索生信时,执行一个自己写的小脚本却失败了。后来经上网查找执行了chmod u+x lizi.sh就可以了。这里将学习文件权限的相关内容,就能理解那行代码是什么意思了。在学习Linux文件权限知识之前,还有必要了解下用户账户与组的概念。

要点一、Linux账户

Linux有三类用户。一是root用户账户,为Linux系统的管理员,UID为0;二是系统账户,为各种各样的功能而创建的不同的虚拟用户账户,UID为1~500;三是用户账户,为真正用户登录操作的账户,UID从500开始。

cat /etc/passwd
#该文件储存用户信息(之前学习shell类型时,了解过这个文件,这次系统学习一下)

举一用户账户例 ake:x:501:501:ake:/home/ake:/bin/bash ,以冒号为分隔,依次为

  • 登录用户名--用户登录用;
  • 密码--最长8位字母/数字;加密处理,保存在/etc/shadow里,只有root用户才能访问,详见p126;
  • 用户UID--每一个Linux用户有唯一的UID(User ID)值;
  • 用户组ID(GID);
  • 备注字段(一般同登录名);
  • 用户HOME目录;
  • 用户默认的shell;

关于Linux用户的账户增减、信息修改操作就不介绍了,详见p127。
这里介绍一个常用的命令 usermod,可以修改/etc/passwd中的大部分字段,参数大部分与useradd参数相同p128,此外还有以下的参数。

  • -l 修改用户账户的登录名
  • -p 修改账户密码
  • -L 锁定账户,使用户无法登陆
  • -U 解锁账户

要点二、组Group

(1)组的概念
组权限允许多个同组用户对系统中的对象(文件,目录等)共享一组共用的权限。一些Linux发行版(比如Ubuntu)会为每个用户创建一个单独的与用户账户同名的用户默认组,比如上面的ake的账户信息。
(2)/etc/group文件

  • 类似 /etc/passwd 存储用户信息文件,/etc/group为储存所有组的信息的文件。
cat /etc/group

举一例 ake:x:501: ,以冒号为分隔,依次为:

  • 组名(注意这里是组名。如上所述,每个用户都有一个同名的默认组)
  • 组密码
  • GID--组的GID仍500以上
  • 属于该组的用户列表 ,不要以为是没有哈!虽然为空,因为当一个用户在/etc/passwd 里已经指定该组为默认组时,这个用户账户不会作为该组成员再出现在/etc/group的组列表里了。

(3)组的操作

  • 创建新组 groupadd
/user/sbin/groupadd shared    #创建名为shared的新组
tail /etc/group    #查看组列表,可以看出shared没有组成员
  • 添加组成员
/user/sbin/usermod -G shared ake #将ake用户添加到shared组里
/user/sbin/usermod -G shared bei #将bei用户添加到shared组里
tail /etc/group    #ake、bei用户被添加到shared组里

如上, -G参数表示将该组(shared组)添加到用户(bei)的属组里(即同时在两个组里),不会影响原默认组(ake的501组);如果使用 -g参数 指定的组名会替换掉该账户的默认组,要小心。

  • 修改组名
/user/sbin/groupmod -n sharing shared  #将组名改为sharing

要点三、文件权限(划重点!)

1、文件权限符

ls -lh  #重点关注输出的第一段描述文件/目录权限的编码

例如 -rwxrw-r--
(1) 第一个字符表示对象类型

  • - 表文件
  • d 表目录
  • l 表链接
  • c 表字符型设备
  • b 表块设备
  • n 表网络设备

(2)剩下的九个字符:每三个按顺序分别对应属主、属组、其它用户的权限

  • r 表可读
  • w 表可写
  • x 表可执行

ls -lh 也会给出属主、属组信息;根据/etc/group 可知道该属组的其它成员。

2、文件的默认权限

umask  #通过该命令查看默认权限设置
#返回值为 0022  

(1)首先要理解返回的四位数的后三位数(022),分别对应属主、属组、其它用户权限;
(2)然后要明白每种权限要由三个字符才能完整表达。所以其实那三位数022,均为八进制值,分别由3个二进制转换而来。即每一位八进制与固定的三位二进制值详细对应关系见p137,比如常见的有

  • 7,代表111,为rwx权限
  • 6,代表110,为rw-权限
  • 4,代表100,为r--权限
  • 0,代表000,为---权限

(3)最后要知道umask为掩码计算的,并非直接是022权限。若为文件用全权限666-022=644;目录用全权限777-022=755,减掉后的值即为创建文件/目录的默认权限。

  • 所以022对应的是644,即为rw-r--r--
umask
touch test1
ls -lh test1
umask 026   #好像也可修改默认权限
touch test2
ls -lh test2
umask #观察有没有修改默认设置 (由于在家条案件限制,无法演练了)

3、修改对象属性

3.1修改权限

  • chmod 命令

方法一:直接修改八进制值

ls -lh test1
chmod 760 test1  #将760的权限赋给test1文件,不用考虑掩码了
ls -lh test1

方法二:符号模式
即导语所述的方法;举一例就清楚了,如下。

chmod u+x test1  #给属主添加执行命令

关键内容是中间的三个字符:
第一个为操作对象: u 表属主、g 表属组、o 表其它、a 表所有;
第二个为如何修改:+ 表增加、- 表移除、= 表设置成后面的值;
第三个为操作权限:r、w、x 还有其它权限,没怎么理解,详见p139。

3.2修改属主、属组

(1)修改属主 chown命令

  • 注意只有root用户才能改变文件属主
chown ake test1  #将test1的文件属主设置成ake
#注意格式,直接通过指定登录名/UID指定新属主

(2)修改属组 chgrp命令

  • 注意文件属主可以改变文件的属组(前提是该用户必须在那个组里,这个操作相当于把文件按组权限分享给组成员)
chgrp shared test1   #将test1的属组修改为shared

4、共享文件

  • 结合上述的学习,如果想共享文件(使其它用户有组权限)的方法就是创建一个新组,添加组成员,然后修改文件的属组即可。基于上述操作都可以完成了,就是比较麻烦,比如多文件的分享,还要一个一个的修改。
  • 有一种共享文件相对简单的方法---创建一个共享目录,使目录里的新文件都沿用目录的属组(不用麻烦得一一修改属组了),可能也没简便多少,哈哈~
mkdir testdir
ls -lh    #查看目录属组
chgrp shared testdir #修改目录属组
ls -lh 
chmod g+s testdir   #启用SGID(详见p141),使目录里的新建文件都沿用目录的属组shared
ls -lh
umask 002  #所有组成员都应该增加默认属组权限
cd testdir
touch test2
ls -lh
  • 综上,在该目录下创建的文件属组自动设置为shared,即shared组的所有用户都能访问这个文件了。(用户创建的文件的属组一般为创建用户的默认属组)

参考自《Linux命令行与shell脚本编程大全》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容