A rendszer felhasználói a körültekintőek, és az umákjaik a nagyon privát 0077-re vannak állítva. A felhasználók azonban szeretnének csoporthoz tartozó könyvtárakat, ahol a fájlok másolhatók, hogy kifejezetten megosszák őket a többi csoporttag között. Több ilyen megosztási könyvtár lehet, bár mindegyik egy csoportra jellemző.
A csoport ragadós bitjének beállítása egy adott könyvtárban a megosztáshoz nem elegendő. Bár a ragacsos bit beállítása miatt a csoport tulajdonjoga helyes a könyvtárba helyezett fájlokon, az említett fájlok engedélyeit gyakran úgy állítják be, hogy a fájlokat nem lehet elolvasni vagy szerkeszteni, vagyis valójában nem lehet megosztani. Csak megjelennek a könyvtárlistában. Ennek oka, hogy egyes felhasználók vagy nem gondolkodnak, vagy nem tudják, hogyan végezzék el manuálisan a szükséges csoportengedély-beállításokat az olvasás és az írás engedélyezéséhez. Adhatunk nekik egy kis szünetet ebben, mert a felhasználók mégsem adminok. Az acls segítségével megadható, hogy egy adott csoportnak hozzáférése van a megosztási könyvtár fájljaihoz, függetlenül attól, hogy a csoport engedélyei mi lettek volna acls nélkül. Ez a tökéletes megoldás, de nem egészen működik.
A következőkben a megosztott csoport neve “customer_gateway”, a fájlt megosztani próbáló felhasználó pedig “svw”. Amint az az átiratból látható, az svw felhasználó a customer_gateway csoport tagja. A megosztást végző könyvtárat más néven “customer_gateway /”
A következők acls-t használnak. Beállítottam a csoportengedélyeket, az alapértelmezett csoportengedélyeket, a maszkot és az alapértelmezett maszkot. Jól működik a könyvtárban létrehozott fájlok, vagy a cat (vagy tar) útján oda áthelyezett fájlok esetében, de furcsa módon nem azoknál a fájloknál, amelyeket “cp” szerkesztett:
# rm -r customer_gateway/ # umask 0077 # cat ~/script1 mkdir customer_gateway chown :customer_gateway customer_gateway/ chmod g+rwx customer_gateway/ setfacl -m group:customer_gateway:rwX customer_gateway/ setfacl -m d:group:customer_gateway:rwX customer_gateway/ setfacl -m m::rwX customer_gateway/ setfacl -m d:m::rwX customer_gateway/ getfacl customer_gateway cd customer_gateway touch cga cat << EOF > cgb c g b EOF ls -l # . ~/script1 # file: customer_gateway # owner: root # group: customer_gateway user::rwx group::rwx group:customer_gateway:rwx mask::rwx other::--- default:user::rwx default:group::rwx default:group:customer_gateway:rwx default:mask::rwx default:other::--- total 4 -rw-rw----+ 1 root root 0 Mar 2 20:43 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb # su - svw /home/svw/bin:/usr/local/bin:/usr/bin:/bin (note umask is 0077) > cd /share/customer_gateway/ > groups svw adm dip video plugdev google-sudoers customer_gateway > cat >> cga e f g > cat > cgc c g c > ls -l total 12 -rw-rw----+ 1 root root 6 Mar 2 20:44 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb -rw-rw----+ 1 svw svw 6 Mar 2 20:44 cgc > ls ~/dat ta tb tc > cat ~/dat/ta > ta > cp ~/dat/tb tb > ls -l total 20 -rw-rw----+ 1 root root 6 Mar 2 20:44 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb -rw-rw----+ 1 svw svw 6 Mar 2 20:44 cgc -rw-rw----+ 1 svw svw 4 Mar 2 20:45 ta -rw-------+ 1 svw svw 4 Mar 2 20:45 tb > getfacl ta # file: ta # owner: svw # group: svw user::rw- group::rwx #effective:rw- group:customer_gateway:rwx #effective:rw- mask::rw- other::--- > getfacl tb # file: tb # owner: svw # group: svw user::rw- group::rwx #effective:--- group:customer_gateway:rwx #effective:--- mask::--- other::--- >
Ez azt mutatja, hogy amikor egy fájlt létrehoznak a könyvtárban, akkor az megkapja az alapértelmezett engedélyeket és megosztható. De a felhasználók nem mindig készítik ott a fájljaikat, általában ott cp-k.
De a másolat készítése ugyanaz, mert másoláshoz először létre kell hoznunk egy új fájlt. itt egy sima másolat, nem az engedélyek megőrzése. Ez megegyezik a következő űrlappal, amely a btw működik, és átmásol egy fájlt, amely az eredeti csoportengedélyektől függetlenül megosztható lesz a könyvtárban:
cat < data.in > shared/data.out
remekül működik, a kátrány átvezetője is működik, de a
cp data.in shared/data.out
űrlap nem működik. A cat
ed fájl megkapja az alapértelmezett maszkot és alapértelmezett jogosultságokat. Az a cp -p (de nem volt “t”), és így a tényleges engedélyek az eredeti fájlhoz hasonlóan olvashatók, nem pedig az, amire az acls-t beállították.
Második próbálkozásként futtattam ezt a kísérletet a csoportos ragacsos bit, chmod g + rwxs, valamint a fac ch és pontosan ugyanazokat az eredményeket kapta. Bár a címjegyzékek szebbek, mivel az összes megosztott fájl esetében megjelenik a csoport tulajdonjoga. Azt is futtattam, hogy csak a csoport ragadós bitje volt beállítva, a setfacl nélkül. Ugyanazt az eredményt kapta a másolt fájlok esetében is (tehát a parancsfájlok meglehetősen használhatatlannak tűnnek egy olyan könyvtár megosztásához, ahová a fájlokat másolják).
Milyen alapon és milyen indoklással különböztetik meg a linux-os parancsfájlok a fájlok különböző formáit adatok létrehozása? Miért kényszerítjük a cp-t az engedélyek megőrzésére, ha ezt még nem mondták meg neki? Mi indokolná azt a zűrzavart, amelyet a macska és a kátránymunkán keresztüli csövek közötti különbségtétel okoz, de a cp nem működik? Hiányzik egy varázsigézet, amely ezt a különbséget tenné elpárolog?
Helyes ez az összefoglaló: a facls lehetővé teszi a fájlok megosztása érdekében a tulajdonjog leküzdését, a fájlok “létrehozásakor” megengedőbbé teszi az engedélyeket, mint az umask, kivéve, ha a létrehozás a cp parancsnak és jó okból, mert … mert miért?
Megjegyzések
Válasz
Ez a tény egy könyvtár készítéséről, ahol a felhasználók nagyon egyszerűek és könnyen elvégezhetők.
-
Először is meg kell találni egy megfelelő helyet ennek a könyvtárnak a létrehozásához, javasoljuk, hogy egy elérhető könyvtár alatt tegyük. mindenkinek (egyelőre). Használja a sudo mkdir parancsot az új könyvtár létrehozásához.
-
Másodszor létre kell hoznia egy csoportot, a csoport egyszerűen a felhasználók gyűjteménye, amelyet felfelé kerekítenek a linuxos rendszer egyes részeinek korlátozása vagy elérése érdekében. Lehet, hogy látott csoportokat, amikor beírta az ls -l parancsot, amely ilyesmit felsorol:
rwxrwxrwx 3 gyökér adminisztrátor 4736 október 24, 12:32 File1.doc
Az a rész, amely azt mondja, hogy root a tulajdonos, a ** adminok pedig a fájl tulajdonosa. A csoportok egyszerű módot kínálnak bizonyos fájlok megtekintésére. A “sudo groupadd” típusú csoport létrehozásához ez lesz a könyvtár, amelyet a könyvtárhoz használunk.
- A csoportok létrehozása után felhasználókat adhat hozzá, amelyekhez hozzá szeretne férni a könyvtárhoz. a következő parancs használatával: sudo adduser Ez lehetővé teszi olyan felhasználók hozzáadását, akik ellenőrizhetik, hogy a felhasználó a csoporthoz tartozik-e. parancs.
Ha ez megtörtént, keresse meg a létrehozott könyvtárat, és állítsa a csoport engedélyét 7-re (rwx). Ne feledje, hogy ezeket beállíthatja a beállításaihoz, de a 7 teljes engedélyeket ad a csoport felhasználóinak könyvtárba, ezt megteheti a “sudo chmod 770” beírásával.
Ezután meg kell változtatnia a könyvtár csoporttulajdonát, így a könyvtár csoporttulajdonosa az a csoport, amelyet készítettél, ezt tedd a következő paranccsal: “sudo chown -R: csoportnév.
Miután mindez megtörtént, felvehet bárkit, akit csak akar, a csoportba, és hozzáférhetnek fájlok másolásához és megosztásához, amíg Az adott csoportba tartoznak a könyvtár eléréséhez. Kérjük, tudassa velem, ha hasznosnak találta ezt !!!!!!
Megjegyzések
- Köszönöm, pontosítottam az eredeti bejegyzést, hogy elmagyarázzam, miért nem sikerült ‘ nem használja ezt a kézi megközelítést.
Válasz
I eltávolítaná az összes acl fájlt, és csak a felhasználói és csoportos engedélyeket használná. Ezután chmod 777
azt a mappát, amelyhez mindenkinek hozzáférést szeretne. Ezután tesztelje a hozzáférését.
Ezután chmod 770
a mappa ismételt tesztelési hozzáféréssel rendelkezik.
Amikor ez a munka úgy működik, ahogy kell, akkor az acl-eket egyenként adja vissza.
Ha nincs szükség végrehajtási permekre, akkor még alacsonyabbra csökkentheti az rw *, rx *, *** értékeket a chmod 660 mappanévvel
Ne feledje, arra az időszakra, amikor nincsenek acl és chmod 777 engedélyei, a mappa mindenki számára nyitott lesz, ezért ne hagyja így.
Megjegyzések
- Nem mindenki, csak egy adott csoport tagjai. Beállíthattam a csoport ragacsos bitjét a könyvtárba. A probléma az, hogy ezután a felhasználók fájlokat helyeznek a könyvtárba, és a csoport helyes, de vagy nem tudják, vagy elfelejtik beállítani a csoporthoz való hozzáférést, vagy ‘ nem tudják. Az acls segítségével megadható, hogy egy adott csoport hozzáférjen a fájlokhoz, függetlenül a csoport engedélyeitől. Ez a tökéletes válasz. A probléma az, hogy az acl-eknek van maszkja, és a cp törli az acl maszkot, hogy megfeleljen a felhasználói umasknak, így a tényleges engedélyek nem teszik lehetővé a fájlok olvasását.
Válasz
kipróbáltam. Úgy tűnik, hogy az umask csempészi a csoportengedélyeket, mivel a csoportengedélyek az ACL maszkjai. Az összes csoportot és az ACL-t blokkolja.
Ennek elkerülése érdekében az umaskot kevésbé korlátozóvá kell tenni.Ennek biztonságos elvégzéséhez hozzá kell adnia egy csoportot minden felhasználóhoz, és ezt a csoportot kell alapértelmezetté tenni. (lásd: Miért van minden felhasználónak saját csoportja? ).
Ez nem ideális, mivel még mindig előfordulnak különféle umasks-ok (g = rx és g = rwx). Ez a stratégia csak feleslegessé teszi a csoportengedélyek hiányát.
Megjegyzések
- Igen, ezt tettem, a felhasználói maszkokat 007-re állítottam. a 077-es megoldás. Ez nem ´ nem tökéletes, mivel sok fájlnak még mindig kisebb az engedélye, és bemásolják őket. Azt reméltem, hogy itt megtanulom, miért viselkedik a cp ilyen módon. Úgy tűnik számomra, hogy ez legyen a cp -p viselkedés. Reméltem, hogy itt valaki meg tudja magyarázni.
Válasz
Eddig minden válasz adott tanácsot hogy foglalkozzon a fájlok megosztásával a csoportkönyvtárakon keresztül. Úgy gondolom, hogy Non válaszolt az ön fő kérdésére, amely így hangzott: Miért viselkedik cp a b
úgy, mintha cp -p a b
lenne megadva? A man oldal valóban nem beszél róla, de a texinfo nak vannak részletei. A info coreutils "cp invocation"
a következőket mutatja:
‘-p’ ‘--preserve[=ATTRIBUTE_LIST]’ Preserve the specified attributes of the original files. ... ... In the absence of this option, the permissions of existing destination files are unchanged. Each new file is created with the <=== mode of the corresponding source file minus the set-user-ID, <=== set-group-ID, and sticky bits as the create mode; the operating system then applies either the umask or a default ACL, possibly resulting in a more restrictive file mode. ...
Tehát, ha a cél létezik, a tartalom kicserélődik, de az üzemmódbitek nem változott. Ha a cél nem létezik, akkor a módbiteket a forrásból másolja át.
cat
-t, esetleg erre a célra szolgáló külön shellscript segítségével?