chmod [a]bcd
bit |
scope |
description |
a |
|
sticky:1, setgid:2, setuid:4 (optional, default: 0) |
b |
owner |
x:1/w:2/r:4 - xw:3/xr:5/wr:6/xwr:7 |
c |
group |
x:1/w:2/r:4 - xw:3/xr:5/wr:6/xwr:7 |
d |
everyone |
x:1/w:2/r:4 - xw:3/xr:5/wr:6/xwr:7 |
- Note: only file/dir owner can chmod it
-
Note: scripts need both
x
and r
permissions to execute(that’s because scripts are read into interpreter)
(only r
is enough if ran via ruby script.rb
, sh script.sh
)
files
bit setting |
meaning |
sticky on files |
no effect |
setgid on execable binaries |
no matter who executes, process runs as file’s group |
setuid on execable binaries |
no matter who executes, process runs as file’s owner |
setuid/setgid on scripts |
ignored due to security issues |
setuid/setgid on non-execables |
no effect1
|
Warning: setuid is dangerous
directories
bit setting |
meaning |
x on dirs |
cd , stat (e.g. ls -l ), inode lookup (access files) |
w on dirs |
add/delete/rename files (requires x for inode lookup) |
r on dirs |
ls |
-
Note: having
xw
on a dir is enough to delete any file in it(unless it has sticky bit)
sticky on dirs
- only used when writable by group/everyone
- files in dir can only be edited/deleted by their owner (think
/tmp
)
- symlinks only work if target is within this dir
setgid on dirs
- all files/subdirs created by anyone in this dir inherit its group
- all subdirs inherit this bit when created
setuid on dirs
sources
- There is an exception. See “SUID and SGID on non-executable files” on this page.
Top comments (0)