User Tools

Site Tools


linux:file_perm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:file_perm [2021/08/17 12:40]
manu
linux:file_perm [2021/08/17 18:12] (current)
manu
Line 1: Line 1:
 ====== Files/​directories permissions and ACL ====== ====== Files/​directories permissions and ACL ======
 +
 +Do not forget that all permissions are related to user ID and group ID, not name.
 +
 +===== Standard file permissions =====
  
 A user can delete a file on which he isn't the owner, if he is the owner of the directory and rights on this folder allows him to write it A user can delete a file on which he isn't the owner, if he is the owner of the directory and rights on this folder allows him to write it
Line 16: Line 20:
 </​cli>​ </​cli>​
  
-Special ​permissions+3 commands that can be used to change ​permissions... 
 +<​cli>​ 
 +chmod 644 <​file>​ 
 +chmod {ugo}{+,​-,​=}{rwx} <​file>​ 
 +chmod <​user>​{.:​}<​group>​ <​file>​ 
 +chgoup <​group>​ <​file>​ 
 +</​cli>​
  
 +===== Special permissions =====
 +
 +==== SUID ====
 +
 +Set user ID on a file
 +  chmod u+s <​file>​
 +  ​
 +This file 'll be executed as file owner, even if my owner is not the same.
 +  Ex: /​usr/​bin/​passwd this will access the file /etc/shadow which requires root permissions
 +
 +List all SUID files
   find / -perm /4000 -ls   find / -perm /4000 -ls
 +
 +==== GUID ====
 +
 +Set group ID on a file or directory
 +  chmod g+s <​file>​
 +
 +If you set GUID on a folder, all newly created files will inherit from group of the parent foder
 +
 +List all GUID files
   find / -perm /2000 -ls   find / -perm /2000 -ls
-  ​ 
-Sticky bit: only user of the file or directory is authorized to remove the file 
-  chmod +t mydir/ 
-  ​ 
  
 +==== Sticky bit ====
 +
 +Sticky bit: only user of the file or directory is authorized to remove the files inside the folder. It's used in conjuction with GUID
 +<cli prompt='#'>​
 +# chmod +t mydir/
 +# ls -l 
 +drwxrwsr-t ​ 2 manu users     6 Aug 17 15:50 aaa
 +</​cli>​
 +
 +Now it can be useful to remove read access to others
 +<cli prompt='#'>​
 +# chmod o-rx mydir
 +# ls -l 
 +drwxrws--T ​ 2 manu users     6 Aug 17 15:50 aaa
 +</​cli>​
 +
 +===== ACL =====
 +
 +ACL are enable on most latest newly created filesystems by default, you can check using **tune2fs -l <​logical_vol_name>​**
 +<cli prompt='#'>​
 +manu-opensuse:​~ # tune2fs -l /​dev/​mapper/​libraryvg-uncryptlv
 +tune2fs 1.43.8 (1-Jan-2018)
 +...
 +Default mount options: ​   user_xattr acl
 +</​cli>​
 +
 +
 +<cli prompt='>'>​
 +manu@opensuse:​~>​ umask
 +0022
 +</​cli>​
 +
 +New files will be created with permissions:​ 0777-0022=**0755 (rwxr-xr-x)**
 +
 +First bit is for special permissions
 +
 +List ACL on file or folder
 +<cli prompt='>'>​
 +manu@opensuse:​~>​ getfacl aaa
 +# file: aaa
 +# owner: manu
 +# group: users
 +# flags: --t
 +user::rwx
 +group::r-x
 +other::r-x
 +</​cli>​
 +
 +When are ACL used ?
 +<cli prompt='>'>​
 +manu@opensuse:​~>​ setfacl -R -m g:qemu:rx aaa
 +
 +manu@opensuse:​~>​ ls -l 
 +drwxr-xr-t+ ​ 2 manu users     6 Aug 17 15:50 aaa
 +</​cli>​
 +If you see the **+** at end of permissions,​ use **getfacl**,​ because **ls -l** doesn'​t knows ACL
 +<cli prompt='>'>​
 +manu@opensuse:​~>​ getfacl aaa
 +# file: aaa
 +# owner: manu
 +# group: users
 +# flags: --t
 +user::rwx
 +group::r-x
 +group:​qemu:​r-x
 +mask::r-x
 +other::r-x
 +</​cli>​
 +
 +If you use an **X** instead of **x**, execute applies only to directories,​ not for files 
 +
 +New files doesn'​t inherit ACL from foder, so add also a default policy **d:**
 +<cli prompt='>'>​
 +manu@opensuse:​~>​ setfacl -R -m d:g:qemu:rx aaa
 +manu@opensuse:​~>​ getfacl aaa
 +# file: aaa
 +# owner: manu
 +# group: users
 +# flags: --t
 +user::rwx
 +group::r-x
 +group:​qemu:​r-x
 +mask::r-x
 +other::r-x
 +default:​user::​rwx
 +default:​group::​r-x
 +default:​group:​qemu:​r-x
 +default:​mask::​r-x
 +default:​other::​r-x
 +</​cli>​
 +
 +===== User extended attribute =====
 +
 +If extended user attribute is enable on a file or folder, you 'll see a dot (.) at end of file proterties
 +<cli>
 +  -rw-r-----. 1 root root     32 Oct 15  2018 secret.key
 +</​cli>​
 +
 +lsattr <​file>​
 +
 +You can change a file to secure delete, immutable... check **chattr** command
linux/file_perm.1629196832.txt.gz · Last modified: 2021/08/17 12:40 by manu