一、權(quán)限的基本概念 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
權(quán)限: 訪問計(jì)算機(jī)資源或服務(wù)的訪問能力。
Linux 中,每一個(gè)資源或者服務(wù)的權(quán)限,分別定義了三組用戶的使用能力。
- 文件的屬主(u)
- 文件的屬組(g)
- 其他用戶(o)
對于每一類用戶來說,可以對某個(gè) 文件 有三種權(quán)限:
- r: 可讀,可以使用類似 cat,more,less 等命令查看文件內(nèi)容。
- w: 可寫,可以編輯或者刪除此文件。
- x: 可執(zhí)行,可以在命令提示符下,當(dāng)做命令提交給內(nèi)核運(yùn)行,一般對文件默認(rèn)沒有此權(quán)限,否則可能執(zhí)行惡意代碼。
對于 目錄 來說,
- r: 可以對此目錄執(zhí)行 ls 以列出內(nèi)部的所有文件
- w: 可以在此目錄中創(chuàng)建文件。
- x: 可以使用 cd 切換進(jìn)此目錄,也可以使用 ls?-l 查看內(nèi)部文件的詳細(xì)信息。
進(jìn)程的安全上下文( secure?context ) :?進(jìn)程是用戶發(fā)起的,是用戶操作計(jì)算機(jī)的代理。進(jìn)程也是有屬組和屬主的。誰發(fā)起的進(jìn)程,進(jìn)程就以誰的身份運(yùn)行。比如, A 和 B 同時(shí)執(zhí)行 ls 命令,這兩個(gè)進(jìn)程屬?主不同,因此獲得對某文件的權(quán)限也不同,如果文件的屬主剛好和進(jìn)程 A 的屬主相同,那么 A 就可以訪問該文件,也就是說有訪問權(quán)限。 如下代碼,drwxr-xr-x?3?root?root?4096?Oct?16?20:57?m ,第一個(gè)字段 drwxr-xr-x 中 rwx 為屬主的權(quán)限, r-x 為屬組的權(quán)限, r-x 為其他用戶的訪問權(quán)限。第三個(gè)字段便是屬主,第四個(gè)字段是屬組。
root@hao:~# ls -l
total 8
drwxr-xr-x 3 root root 4096 Oct 16 20 : 57 m
drwxr-xr-x 2 root root 4096 Oct 16 22 : 00 test
?二、權(quán)限管理 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?1、chown(chage owner)改變文件屬主
只有管理員才可以改變文件屬主
命令格式: chown username file...更改文件的屬主
chown? username:groupname file...更改文件的屬主和屬組
chown :groupname file 更改文件的屬組
[hadoop@hao tmp]$ ll / tmp total 40 -rw-rw-r--. 1 hadoop hadoop 0 Nov 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 21 b.hadoop ... [root@hao ~]# chown hao /tmp/ a.hadoop [root@hao ~]# ll / tmp total 40 -rw-rw-r--. 1 hao hadoop 0 11 ?. 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 11 ?. 4 12 : 21 b.hadoop ...
[root@hao ~]# mkdir /tmp/ testdir [root@hao ~]# ll / tmp total 44 -rw-rw-r--. 1 hao hadoop 0 Nov 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 21 b.hadoop ... drwxr -xr-x. 2 root root 4096 Nov 4 13 : 53 testdir [root@hao ~]# chown hao /tmp/ testdir [ root@hao ~]# ll / tmp total 44 -rw-rw-r--. 1 hao hadoop 0 Nov 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 21 b.hadoop ... drwxr -xr-x. 2 hao root 4096 Nov 4 13 : 53 testdir
命令選項(xiàng):
-R:修改目錄及其內(nèi)部文件的屬主。不使用該選項(xiàng)時(shí),只更改目錄的屬主,不更改目錄內(nèi)文件的屬主。
--reference:更改文件的屬主為指定文件的屬主。chown --reference =/path file...
[root@hao ~]# ll / tmp total 44 -rw-rw-r--. 1 hao hadoop 0 Nov 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 21 b.hadoop ... [root@hao ~]# chown --reference=/tmp/b.hadoop /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -rw-rw-r--. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 21 b.hadoop ...
2、chgrp(change group)修改屬組
使用方法同上。
3、chmod 更改文件權(quán)限
a、修改三類用戶的權(quán)限
命令格式: chmod MODE filename ...
命令選項(xiàng):
-R:
--reference:
如下代碼是更改test文件的三類用戶權(quán)限為750即為rwxr-x---
chmod 750 test
b、修改某類用戶或某些類用戶權(quán)限
命令格式: chmod 用戶類別=MODE filename
[root@hao ~]# ll / tmp total 44 -rw-rw-r--. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ... [root@hao ~]# chmod u=rw /tmp/ a.hadoop [root@hao ~]# chmod g=rw /tmp/ a.hadoop [root@hao ~]# chmod o=rw /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -rw-rw-rw-. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ...
[root@hao ~]# chmod og=r,u= w /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -- w -r--r--. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ...
c、修改某類用戶的某位或某些位權(quán)限
命令格式: chmod 用戶類別+(-)MODE filename
[root@hao ~]# chmod a+r /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -rw-r--r--. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ... [root@hao ~]# chmod a-r /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -- w -------. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ... [root@hao ~]# chmod u+r /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -rw-------. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ... [root@hao ~]# chmod u+r,g+x /tmp/ a.hadoop [root@hao ~]# ll / tmp total 44 -rw---x---. 1 hadoop mygroup 0 Nov 4 12 : 09 a.hadoop ...
三、創(chuàng)建文件的默認(rèn)權(quán)限 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
創(chuàng)建一個(gè)文件,它的默認(rèn)權(quán)限是:666-umask的前三位
創(chuàng)建一個(gè)目錄,它的默認(rèn)權(quán)限是:777-umask的前三位。 umask是遮罩碼
[root@hao ~]# cd / tmp [root@hao tmp]# touch test [root@hao tmp]# ll test -rw-r--r--. 1 root root 0 Nov 4 16 : 39 test [root@hao tmp]# umask 0022 [root@hao tmp]# mkdir test1 [root@hao tmp]# ls - dl test1 drwxr -xr-x. 2 root root 4096 Nov 4 16 : 41 test1
umask 可以直接設(shè)置用戶的遮罩碼 如 umask 202 則為設(shè)置當(dāng)前用戶的遮罩碼。但是文件默認(rèn)不能有執(zhí)行權(quán)限,因此如果算得的結(jié)果有執(zhí)行權(quán)限則會自動加1!!
該用戶退出后,umask會默認(rèn)恢復(fù)為初始值。
四、bash配置文件????????????????????????????????????????????????????
bash的配置文件分為兩種
-
全局配置
- /etc/profile,/etc/profile.d/*.sh,/etc/bashrc
-
個(gè)人配置
- ~/.bash_profile,~/.bashrc
這些文件分為兩類:
-
profile類文件:
- 設(shè)定環(huán)境變量
- 可以設(shè)定登錄時(shí)所運(yùn)行的命令或腳本
-
bashrc類文件
- 設(shè)定本地變量
- 定義命令別名
五、shell 類型(用戶角度) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
從用戶角度來說,shell分為兩種類型:
-
登陸式shell
- su - username
- su? -l username
- 正常通過某終端登陸的shell
-
非登錄式shell
- su username
- 圖形終端下打開命令窗口
- 自動執(zhí)行的shell腳本
登錄式shell讀取配置文件的順序?yàn)椋?
1、/etc/profile 2、/etc/profile.d/*.sh 3、~/.bash_profile 4、~/.bashrc 5、/etc/bashrc
非登錄式shell讀取配置文件的順序?yàn)椋?
1、~/.bashrc 2、/etc/bashrc 3、/etc/profile.d/*.sh
六、練習(xí)一:創(chuàng)建沒有家目錄的openstack用戶 ? ? ? ? ? ??
1、創(chuàng)建一個(gè)沒有家目錄的用戶openstack
[root@hao ~]#
useradd -M openstack
2、復(fù)制/etc/skel 為/home/openstack
[root@hao ~]# cp -r /etc/skel /home/ openstack [root@hao ~ ]# finger openstack Login: openstack Name: Directory: /home/openstack Shell: /bin/ bash Never logged in . No mail. No Plan. [root@hao ~]# ls / home guang hadoop hao haohao openstack testuser testuser1 [root@hao ~]# id openstack uid = 1005 (openstack) gid= 1005 (openstack) groups = 1005 (openstack) [root@hao ~]# ll / home total 28 ... drwxr -xr-x. 4 root root 4096 Nov 4 14 : 53 openstack ... [root@hao ~]# ls -al /home/ openstack total 28 drwxr -xr-x. 4 root root 4096 Nov 4 14 : 53 . drwxr -xr-x. 9 root root 4096 Nov 4 14 : 53 .. -rw-r--r--. 1 root root 18 Nov 4 14 : 53 .bash_logout -rw-r--r--. 1 root root 176 Nov 4 14 : 53 .bash_profile -rw-r--r--. 1 root root 124 Nov 4 14 : 53 .bashrc drwxr -xr-x. 2 root root 4096 Nov 4 14 : 53 .gnome2 drwxr -xr-x. 4 root root 4096 Nov 4 14 : 53 .mozilla
3、修改/home/openstack及其內(nèi)部文件的屬主屬組為openstack
[root@hao ~]# chown -R openstack:openstack /home/ openstack [root@hao ~]# ls - ld /home/openstack/ drwxr -xr-x. 4 openstack openstack 4096 Nov 4 14 : 53 /home/openstack/ [root@hao ~]# ls -la /home/openstack/ total 28 drwxr -xr-x. 4 openstack openstack 4096 Nov 4 14 : 53 . drwxr -xr-x. 9 root root 4096 Nov 4 14 : 53 .. -rw-r--r--. 1 openstack openstack 18 Nov 4 14 : 53 .bash_logout -rw-r--r--. 1 openstack openstack 176 Nov 4 14 : 53 .bash_profile -rw-r--r--. 1 openstack openstack 124 Nov 4 14 : 53 .bashrc drwxr -xr-x. 2 openstack openstack 4096 Nov 4 14 : 53 .gnome2 drwxr -xr-x. 4 openstack openstack 4096 Nov 4 14 : 53 .mozilla
4、 修改/home/openstack及其內(nèi)部文件 ,屬組和其他用戶沒有任何訪問權(quán)限
[root@hao ~]# chmod -R go= /home/openstack/ [root@hao ~]# ls - ld /home/ openstack drwx ------. 4 openstack openstack 4096 Nov 4 14 : 53 /home/ openstack [root@hao ~]# ls -la /home/openstack/ total 28 drwx ------. 4 openstack openstack 4096 Nov 4 14 : 53 . drwxr -xr-x. 9 root root 4096 Nov 4 14 : 53 .. -rw-------. 1 openstack openstack 18 Nov 4 14 : 53 .bash_logout -rw-------. 1 openstack openstack 176 Nov 4 14 : 53 .bash_profile -rw-------. 1 openstack openstack 124 Nov 4 14 : 53 .bashrc drwx ------. 2 openstack openstack 4096 Nov 4 14 : 53 .gnome2 drwx ------. 4 openstack openstack 4096 Nov 4 14 : 53 .mozilla
七、練習(xí)二:手動添加用戶 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
需求:手動添加用戶hive,屬主屬組均為hive,UID與GID均為5000,附加組為mygroup(已存在)
1、創(chuàng)建組hive
[root@hao ~]# nano /etc/ grou
在該文件末尾添加組hive,同時(shí)在附加組mygroup添加用戶hive
mygroup:x:502:testuser1,hive
hive:x: 5000
2、在/etc/passwd中創(chuàng)建用戶
hive:x: 5000 : 5000 :hive:/home/hive:/bin/bash
3、在/etc/shadow中創(chuàng)建密碼,這里的16378為距離1970年1月1日經(jīng)過的天數(shù),可以算出來。
[hao@hao ~]$ date Tue Nov 4 15 : 17 : 38 CST 2014 [hao@hao ~]$ date +% s 1415085473 [hao@hao ~ ]$ bc bc 1.06 . 95 Copyright 1991 - 1994 , 1997 , 1998 , 2000 , 2004 , 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty ' . 1415085473 / 86400 16378
hive:!!: 16378 : 0 : 99999 : 7 :::
4、創(chuàng)建家目錄并設(shè)定其屬組屬主為hive
[root@hao ~]# cp -r /etc/skel /home/ hive [root@hao ~]# ls / home guang hadoop hao haohao hive openstack testuser testuser1
[root@hao ~]# chown -R hive:hive /home/ hive [root@hao ~]# ls -al /home/ hive total 28 drwxr -xr-x. 4 hive hive 4096 Nov 4 15 : 25 . drwxr -xr-x. 10 root root 4096 Nov 4 15 : 25 .. -rw-r--r--. 1 hive hive 18 Nov 4 15 : 25 .bash_logout -rw-r--r--. 1 hive hive 176 Nov 4 15 : 25 .bash_profile -rw-r--r--. 1 hive hive 124 Nov 4 15 : 25 .bashrc drwxr -xr-x. 2 hive hive 4096 Nov 4 15 : 25 .gnome2 drwxr -xr-x. 4 hive hive 4096 Nov 4 15 : 25 .mozilla [root@hao ~]# ls -dl /home/ hive drwxr -xr-x. 4 hive hive 4096 Nov 4 15 : 25 /home/hive
5、 修改/home/hive及其內(nèi)部文件權(quán)限,使屬組和其他用戶沒有任何訪問權(quán)限
[root@hao ~]# chmod -R go= /home/ hive [root@hao ~]# ls -dl /home/ hive drwx ------. 4 hive hive 4096 Nov 4 15 : 25 /home/ hive [root@hao ~]# ls -al /home/ hive total 28 drwx ------. 4 hive hive 4096 Nov 4 15 : 25 . drwxr -xr-x. 10 root root 4096 Nov 4 15 : 25 .. -rw-------. 1 hive hive 18 Nov 4 15 : 25 .bash_logout -rw-------. 1 hive hive 176 Nov 4 15 : 25 .bash_profile -rw-------. 1 hive hive 124 Nov 4 15 : 25 .bashrc drwx ------. 2 hive hive 4096 Nov 4 15 : 25 .gnome2 drwx ------. 4 hive hive 4096 Nov 4 15 : 25 .mozilla
? 6、手動生成密碼,并添加到/etc/shadow中
?
[root@hao ~]# openssl passwd - 1 -salt ' 12345678 ' Password: $ 1 $ 12345678 $2hpL/ 5Hu1halILqBt7TFe. [root@hao ~]# nano /etc/shadow
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
