a fájlrendszerek engedélyeket és attribútumokat használnak a rendszerfolyamatok által a fájlokkal és könyvtárakkal való interakció szintjének szabályozására.
megtekintési engedélyek
használja az ls parancs -l
opcióját a könyvtár tartalmához beállított engedélyek (vagy fájlmód) megtekintéséhez, például:
$ ls-l / path/to / directory
az első oszlop az, amire összpontosítanunk kell., Taking an example value of drwxrwxrwx+
, the meaning of each character is explained in the following tables:
d |
rwx |
rwx |
rwx |
+ |
The file type, technically not part of its permissions. See info ls -n "What information is listed" for an explanation of the possible values., |
a tulajdonos által a fájl felett megadott engedélyek, az alábbiakban ismertetjük. | a csoport által a fájl felett megadott engedélyek, az alábbiakban ismertetjük. | az összes többi felhasználó által a fájl felett megadott engedélyek, az alábbiakban ismertetjük. | egyetlen karakter, amely meghatározza, hogy egy Alternatív hozzáférési módszer vonatkozik-e a fájlra. Ha ez a karakter egy szóköz, nincs Alternatív hozzáférési módszer. A . karakter egy biztonsági kontextusú fájlt jelez, de nincs más Alternatív hozzáférési módszer., Az Alternatív hozzáférési módszerek bármely más kombinációjával rendelkező fájlt + karakter jelöli, például hozzáférés-vezérlési listák esetén., |
mind a három engedélyt triád (rwx
a fenti példában) lehet a következő karaktereket:
Karakter | Hatással fájlok | Hatása a könyvtárak | |
---|---|---|---|
Olvassa el engedélyt (az első karakter) | - |
A fájl nem olvasható., | a könyvtár tartalma nem jeleníthető meg. |
r |
a fájl olvasható. | a könyvtár tartalma látható. | |
write permission (second character) | - |
a fájl nem módosítható. | a könyvtár tartalma nem módosítható. |
w |
a fájl módosítható., | a könyvtár tartalma módosítható (új fájlok vagy mappák létrehozása; meglévő fájlok vagy mappák átnevezése vagy törlése); megköveteli a végrehajtás engedélyének beállítását is, különben ennek az engedélynek nincs hatása. | |
Execute permission (third character) | - |
a fájl nem hajtható végre. | a könyvtár nem érhető el cd-vel. |
x |
a fájl végrehajtható., | A könyvtár elérhető cd; ez az egyetlen engedélyt kicsit, hogy a gyakorlatban tekinthető “örökölte” az őse, könyvtárak, sőt, ha minden mappát, az utat nem rendelkezik a x bit készlet, a végső fájl vagy mappa nem lesz elérhető sem, függetlenül attól, hogy a engedélyekkel; lásd path_resolution(7) a további információkért., |
|
s |
a setuid bit, amikor a felhasználói triádban található; a setgid bit, amikor a csoport triádban található; ez nem található a többi triadban; azt is jelenti, hogy x be van állítva. |
||
S |
ugyanaz, mint a s , de x nincs beállítva; ritka a normál akták, és használhatatlanok a mappákban., |
||
t |
The sticky bit; it can only be found in the others triad; it also implies that x is set. |
||
T |
Same as t , but x is not set; rare on regular files, and useless on folders. |
See info Coreutils -n "Mode Structure"
and chmod(1) for more details.,
namei -l path
útvonalon tekintheti meg.példák
nézzünk néhány példát a tisztázáshoz:
drwx------ 6 archie users 4096 Jul 5 17:37 Documents
Archie teljes hozzáféréssel rendelkezik a dokumentumok könyvtárához. Listázhat, fájlokat hozhat létre, átnevezhet, törölhet bármilyen fájlt a Dokumentumokban, függetlenül a fájl engedélyeitől. A fájlhoz való hozzáférés képessége a fájl engedélyétől függ.
dr-x------ 6 archie users 4096 Jul 5 17:37 Documents
Archie teljes hozzáféréssel rendelkezik, kivéve, hogy nem tud létrehozni, átnevezni, törölni egy fájlt., Felsorolhatja a fájlokat, és (ha a fájl engedélye felhatalmazza) hozzáférhet egy meglévő fájlhoz a Dokumentumokban.
d-wx------ 6 archie users 4096 Jul 5 17:37 Documents
Archie nem tudja megtenni az ” ls ” – t a Dokumentumokban, de ha ismeri egy meglévő fájl nevét, akkor felsorolhatja, átnevezheti, törölheti vagy (ha a fájl engedélye felhatalmazza őt) elérheti azt. Emellett képes új fájlokat létrehozni.
d--x------ 6 archie users 4096 Jul 5 17:37 Documents
Archie csak akkor képes hozzáférni azokhoz a fájlokhoz, amelyekről tud. Nem tudja felsorolni a már meglévő fájlokat,vagy létrehozni, átnevezni, törölni őket.,
ne feledje, hogy a könyvtári engedélyeket kidolgozzuk, ennek semmi köze az egyes fájlengedélyekhez. Új fájl létrehozásakor a könyvtár változik. Ezért kell írási engedélyt a könyvtárba.
nézzünk meg egy másik példát, ezúttal egy fájl, nem egy könyvtár:
-rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar
itt láthatjuk az első betű nem d
de -
. Tehát tudjuk, hogy ez egy fájl, nem Könyvtár., Ezután a tulajdonos jogosultságai: rw-
, így a tulajdonos képes írni-olvasni, de nem végrehajtani. Ez furcsának tűnhet, hogy a tulajdonos nem rendelkezik mind a három jogosultsággal,de a x
engedélyre nincs szükség, mivel ez egy szöveg / adatfájl, amelyet egy szövegszerkesztő, például Gedit, EMACS vagy olyan szoftver, mint az R, és nem egy futtatható fájl a saját jogán (ha tartalmazott valamit, mint a python programozási kód, akkor nagyon jól lehet)., A csoport engedélyei r--
értékre vannak állítva, így a csoport képes olvasni a fájlt, de semmilyen módon nem írhatja/szerkesztheti-lényegében olyan, mintha valamit csak olvasásra állítana. Láthatjuk, hogy ugyanazok az engedélyek vonatkoznak mindenki másra is.
Engedélyek módosítása
A chmod egy parancs Linux és más Unix-szerű operációs rendszerekben, amely lehetővé teszi egy fájl vagy könyvtár engedélyeinek (vagy hozzáférési módjának) megváltoztatását.
Szövegmódszer
a fájl engedélyeinek — vagy hozzáférési módjának-megváltoztatásához használja a chmod parancsot egy terminálon., Az alábbiakban a parancs általános szerkezete:
chmod who=permissions filename
ahol who
bármilyen betűtartományból, mindegyik jelzi, hogy ki kap engedélyt. Ezek a következők:
-
u
: a fájl tulajdonosa. -
g
: A felhasználói csoport, amelyhez a fájl tartozik. -
o
: a többi felhasználó, azaz mindenki más. -
a
: A fentiek mindegyike; használja ezt augo
gépelés helyett.,
az engedélyek ugyanazok, mint a #megtekintési jogosultságok (r
, w
és x
).
most nézd meg néhány példát ezzel a paranccsal., Tegyük fel, hogy lett nagyon vigyáz a Dokumentumok könyvtár, valamint azt akartam, hogy mindenki tagadja, de magad, engedélyek olvasni, írni, aztán végre (vagy ebben az esetben a keresés/megjelenés) benne:
Előtt: drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents
$ chmod g= Documents$ chmod o= Documents
Után: drwx------ 6 archie users 4096 Jul 6 17:32 Documents
Itt mert nem akarja tagadni, hogy az engedélyek nem tesz semmilyen levelet után a =
, ahol az engedélyek lenne lépett. Most már láthatja, hogy csak a tulajdonos jogosultságai rwx
, az összes többi engedély pedig -
.,
Ez lehet visszatért a:
Előtt: drwx------ 6 archie users 4096 Jul 6 17:32 Documents
$ chmod g=rx Documents$ chmod o=rx Documents
Után: drwxr-xr-x 6 archie users 4096 Jul 6 17:32 Documents
a következő példa, hogy teljesíteni akarja olvasni végre engedélyeket a csoport, illetve más felhasználók, így a leveleket a jogosultságokat (r
vagy x
) után a =
, szóköz nélkül.
egyszerűsítheti ezt, hogy egynél több who
betűt tegyen ugyanabba a parancsba, e.,g:
$ chmod go=rx Documents
who
betűket vagy engedélyleveleket a chmod
parancs: lehet chmod go=rx file
vagy chmod og=xr file
. Ez mind ugyanaz.,ider egy másik példát: tegyük fel, hogy meg szeretné változtatni egy foobar
fájlt úgy, hogy írni-olvasni engedélyek, valamint a fickó, hogy a felhasználók a csoport users
ki lehet kollégák dolgoznak foobar
, lehet, írni-olvasni is, de a többi felhasználó számára csak akkor olvassa el, hogy:
Előtt: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar
$ chmod g=rw foobar
Után: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar
Ez pontosan olyan, mint az első példában, de egy fájl, nem egy könyvtárat, illetve adja meg írni engedély (csak, hogy egy példát nyújtott minden engedélyt).,
Text method shortcuts
A chmod parancs lehetővé teszi, hogy a +
vagy -
helyett =
. Ez különbözik a fenti parancsoktól, amelyek lényegében újraírják az engedélyeket (például a r--
rw-
engedélyének megváltoztatásához még mindig tartalmaznia kell a r
, valamint a w
a =
A chmod parancshívásban., Ha kimaradt a r
, akkor elveszi a r
engedélyt, mivel újraírják őket a =
. A +
és -
használata ezt az aktuális jogosultságok hozzáadásával vagy eltávolításával elkerüli).,>Előtt: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar
$ chmod a-w foobar
Után: -r--r--r-- 1 archie users 5120 Jun 27 08:28 foobar
A különböző parancsikon a különleges X
mód: ez nem egy konkrét fájlt mód, de gyakran használják együtt a -R
lehetőség, hogy a végrehajtható kicsit csak a könyvtárak, hagyja változatlan, a szokásos fájlok, például:
$ chmod -R a+rX ./data/
Másolás engedélyek
Azt lehet mondani, chmod másolni az engedélyek egyik osztályból, azt mondja, a tulajdonos, illetve adja ugyanazokat a jogosultságokat, hogy a csoport vagy akár az összes., Ehhez a r
, w
, vagy x
a =
után tegyen egy másik who levelet. E.g:
előtt: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar
$ chmod g=u foobar
után: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar
Ez a parancs lényegében azt jelenti, hogy “módosítsa a csoport engedélyeit (g=
/div>), hogy ugyanaz legyen, mint a tulajdonos felhasználó (=u
). Vegye figyelembe, hogy nem másolhat egy sor engedélyt, valamint újakat adhat meg, például,:
$ chmod g=wu foobar
ebben az esetben a chmod hibát dob.
numerikus módszer
A chmod engedélyeket is beállíthat számokkal.
a számok használata egy másik módszer, amely lehetővé teszi mind a három tulajdonos, csoport és mások engedélyeinek szerkesztését egyszerre, valamint a setuid, setgid és sticky bitek szerkesztését. A kód alapvető szerkezete a következő:
$ chmod xxx filename
ahol xxx
egy 3 számjegyű szám, ahol minden számjegy bármi lehet 0-tól 7-ig., Az első számjegy a tulajdonos engedélyeire vonatkozik, a második számjegy a csoport engedélyeire vonatkozik, a harmadik számjegy pedig az összes többi engedélyére vonatkozik.
ebben a számjelölésben a r
, w
, és x
saját számértékük van:
r=4w=2x=1
számjegy száma meg kell vizsgálni, hogy milyen engedélyeket szeretne tulajdonos, csoport, és az összes többi, hogy, majd a teljes értéküket fel., akarsz csoport, mindenki más csak olvasni végre engedélyeket, akkor a numerikus értékek, mint így:
- Tulajdonos:
rwx
=4+2+1=7 - Csoport:
r-x
=4+0+1=5 - Egyéb:
r-x
=4+0+1=5
$ chmod 755 filename
Ez az összeg a használata a következő:
$ chmod u=rwx filename$ chmod go=rx filename
megtekintéséhez a meglévő engedélyeket egy fájl vagy könyvtár numerikus formában, használja a stat(1) parancs:
$ stat -c %a filename
Amennyiben a % – os opció megadja a kimeneti numerikus formában.,
a Legtöbb mappák, könyvtárak vannak beállítva, hogy a 755
, hogy lehetővé teszik, olvasás, írás, végrehajtás, hogy a tulajdonos, de tagadja, írás, hogy mindenki más, de a fájlok általában 644
, hogy lehetővé teszik, írás-olvasás, a tulajdonos, de csak olvasva mindenki más számára; olvassa el az utolsó megjegyzés a hiánya x
jogosultságok a nem végrehajtható fájlokat: ez ugyanaz a dolog.,
látni, Hogy ez az intézkedés a példa tekintsük az előző példa, hogy a már használt, de ezzel a numerikus módszer alkalmazása helyett:
Előtt: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar
$ chmod 664 foobar
Után: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar
Ha ez egy futtatható a szám 774
ha azt akartam, hogy grant futtatható engedélyt, hogy a tulajdonos, illetve a csoport. Alternatív megoldásként, ha azt akarja, hogy mindenki csak olvasási engedéllyel rendelkezzen, a szám 444
lenne., Kezeli r
mint 4, w
mint 2 x
, mint 1 talán a legegyszerűbb módja annak, hogy működik a numerikus értékek a chmod xxx filename
, de van is egy bináris módszer, ahol minden engedélyt egy bináris számot, akkor viszont számmá alakít át. Ez egy kicsit bonyolultabb, de itt szerepel a teljesség.,
Fontolja meg ezt a jogosultságot beállítani:
-rwxr-xr--
Ha egy 1 alatt minden engedélyt, valamint a 0 minden, aki nem biztosított, az eredmény valami ilyesmi:
-rwxrwxr-x 111111101
lehet majd átalakítani, ezek a bináris számok:
000=0 100=4001=1 101=5010=2 110=6011=3 111=7
az érték A fenti lenne tehát 775.
Fontolja meg akartuk, hogy távolítsa el az írható engedélye csoport:
-rwxr-xr-x 111101101
Az érték lenne tehát 755 akkor használjuk a chmod 755 filename
, hogy távolítsa el az írható engedélyt., Észre fogja venni, hogy ugyanazt a háromjegyű számot kapja, függetlenül attól, hogy melyik módszert használja. Függetlenül attól, hogy szöveget vagy számokat használ, a személyes preferenciától és a gépelési sebességtől függ. Ha vissza szeretne állítani egy könyvtárat vagy fájlt az alapértelmezett engedélyekre, például olvasni és írni (és végrehajtani) engedélyt a tulajdonosnak, de megtagadja az írási engedélyt mindenki másnak, gyorsabb lehet a chmod 755/644 filename
használata. Ha azonban az engedélyeket valami normán kívülre változtatja, akkor egyszerűbb és gyorsabb lehet a szöveges módszer használata, szemben a számokká való konvertálással, ami hibához vezethet., Meg lehet vitatni, hogy nincs valódi jelentős különbség a sebesség egyik módszer a felhasználó számára, hogy csak akkor kell használni chmod alkalmanként.
a numerikus módszerrel a setuid
, setgid
, és sticky
biteket négy számjegyből állíthatja be.
setuid=4setgid=2sticky=1
például chmod 2777 filename
mindenki számára beállítja az olvasási/írási / végrehajtható biteket, valamint engedélyezi a setgid
bitet.
tömeges chmod
általában a könyvtárak és fájlok nem rendelkezhetnek azonos jogosultságokkal., Ha szükség van egy könyvtárfa tömeges módosítására, használja a find-et az egyik vagy a másik szelektív módosításához.
To chmod only könyvtárak to 755:
$ find directory -type d -exec chmod 755 {} +
to chmod only files to 644:
$ find directory -type f -exec chmod 644 {} +
tulajdonosváltás
chown megváltoztatja a tulajdonos egy fájl vagy könyvtár, ami gyorsabb és könnyebb, mint megváltoztatni a jogosultságokat bizonyos esetekben.
Tekintsük a következő példát, hogy egy új partíciót GParted biztonsági adatok. A Gparted mindezt gyökérként teszi, így minden alapértelmezés szerint a root-hoz tartozik., Ez mind jó, mind jó, de amikor adatokat írunk a szerelt partícióra, az engedélyt megtagadják a rendszeres felhasználók számára.
brw-rw---- 1 root disk 8, 9 Jul 6 16:02 sda9drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup
mint látható a készülék /dev
tulajdonosa root, mint a mount location (/media/Backup
)., A csatolási hely tulajdonosának megváltoztatásához a következőket teheti:
előtt: drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup
# chown archie /media/Backup
után: drwxr-xr-x 5 archie root 4096 Jul 6 16:01 Backup
most a partíciónak az új tulajdonos, archie által írt adatai lehetnek, anélkül, hogy megváltoztatná a csatolási helyet engedélyek (mint a tulajdonos Triad már rwx
engedélyek).
-
chown
mindig törli a setuid és setgid biteket. - a nem root felhasználók nem használhatják a
chown
fájlokat egy másik felhasználó számára.,
Access Control Lists
Access Control Lists egy további, rugalmasabb engedélyezési mechanizmus fájlrendszerek lehetővé téve, hogy engedélyeket bármely Felhasználó vagy csoport bármely fájl.
Umask
az umask segédprogram a fájlkészítési mód maszk vezérlésére szolgál, amely meghatározza az újonnan létrehozott fájlok fájlengedély-bitjeinek kezdeti értékét.,
fájl attribútumok
eltekintve a fájl mód bitek, amelyek szabályozzák a felhasználó és a csoport olvasási, írási és végrehajtási engedélyeket, több fájlrendszer támogatja a fájl attribútumokat, amelyek lehetővé teszik a további testreszabását megengedhető fájlműveletek. Ez a szakasz néhány ilyen tulajdonságot, valamint azt írja le, hogyan kell velük dolgozni.
chattr és lsattr
az ext2 és ext3 fájlrendszerek esetében az e2fsprogs csomag tartalmazza az lsattr és chattr programokat, amelyek felsorolják és megváltoztatják a fájl attribútumait.,/li>
u
: törölhetetlenA
: nem atime frissítésekC
: nem értettem, hogy írniD
: szinkron könyvtár frissítésekS
: szinkron frissítésekT
: top a címtár-hierarchiapéldául, ha azt szeretné, hogy állítsa be a megváltoztathatatlan kicsit néhány fájlt használja a következő parancsot:
# chattr +i /path/to/file
Ha el szeretne távolítani egy attribútum egy fájlt, csak a változás +
, hogy a -
.,
Extended attributes
From xattr(7): “Extended attributes are name:value pairs associated permanently with files and directories”. Négy kiterjesztett attribútumosztály létezik: Biztonság, Rendszer, megbízható és felhasználó.
kiterjesztett attribútumokat is használnak a képességek beállításához.
felhasználói kiterjesztett attribútumok
A felhasználói kiterjesztett attribútumok tetszőleges információk tárolására használhatók egy fájlról., To create one:
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt
Use getfattr to display extended attributes:
$ getfattr -d foo.txt
# file: foo.txtuser.,3de557528">
--preserve=mode,ownership,timestamps,xattr
mv
tar
--xattrs
for creation and extractionbsdtar
-p
for extraction--xattrs
- mv silently discards extended attributes when the target file system does not support them.,
a bővített attribútumok szövegszerkesztőkkel való megőrzéséhez konfigurálnia kell őket a fájlok mentése helyett az Átnevezés(2) használata helyett.
tippek és trükkök
gyökér megőrzése
használja a --preserve-root
zászlót, hogy megakadályozza a chmod
rekurzív hatását a/
. Ez például megakadályozhatja, hogy az egyik eltávolítsa a futtatható bitet rendszerszéles, így megtörve a rendszert. Ha ezt a zászlót minden alkalommal használni szeretné, Állítsa be egy álnéven belül. Lásd még .,
Lásd még:
- wikipedia:Chattr
- Linux File Permission Confusion
- Linux File Permission Confusion Part 2
- kiterjesztett attribútumok: a jó, a nem olyan jó, a rossz.
- Backup and restore file permissions in Linux
- miért romboló a” chmod-R 777/”?
wikipedia: Extended file attribútumok#Linux