$ touch file && chmod a+x file
Các giải thích trong câu trả lời khác là tuyệt vời. Tôi muốn thêm một cái gì đó thực sự đưa ra câu trả lời cho câu hỏi,
Làm thế nào để sửa cái này?
với mã cụ thể. @Scott nói làm thế nào để làm điều này,
bạn phải tạo tập tin và sau đó chmod
nó.
Mã trong câu trả lời của tôi cho thấy cách thực hiện và làm nổi bật nó bằng cách đặt nó lên đầu tiên.
Giải thích thêm
Để bắt đầu, để đơn giản, tôi chỉ cần thêm vào touch
lệnh do OP đưa ra, cụ thể là touch file
trở thành touch file && chmod a+x file
.
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ touch file && chmod a+x file
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ mkdir dir
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 paź 31 13:35 dir
-rwxrwxrwx 1 someuser webs 0 paź 31 13:35 file
Ở đây, tôi sẽ thiết lập tình huống tương tự trên máy của mình (Cygwin) để cho thấy rằng nó hoạt động, sau đó thực hiện tương tự trên hộp Ubuntu ảo để hiển thị sự khác biệt trong thiết lập. (Lưu ý rằng lệnh thực tế để sửa chữa mọi thứ không thay đổi, tôi chỉ đơn giản muốn hiển thị một số khác biệt có thể xảy ra setfacl
, cũng như để tự xác minh rằng nó hoạt động.)
$ uname -a | head -n 1
CYGWIN_NT-10.0 my_machine 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64 Cygwin
$ pwd
/home/me
$ mkdir user294034
$ setfacl -m u::rwx user294034/
$ setfacl -m d:u::rwx user294034/
$ setfacl -m g::rwX user294034/
setfacl: illegal acl entries
$ setfacl -m g::rws user294034/
setfacl: illegal acl entries
$ # I guess I don't know how to get the `flags: -s-` on Cygwin
$ setfacl -m g::rwx user294034/
$ setfacl -m d:g::rwx user294034/
$ setfacl -m o::rwx user294034/
$ setfacl -m d:o::rwx user294034/
$ cd user294034
$ getfacl .
# file: .
# owner: me
# group: my_group
user::rwx
group::rwx
other:rwx
default:user::rwx
default:group::rwx
default:other:rwx
$ # I admitted that I don't know how to get `# flags: -s-`
$ umask
0022
$ umask 0000
$ touch file
$ mkdir dir
$ # Here, we'll see the same problem
$ ls -l
total 0
drwxrwxrwx+ 1 me my_group 0 Sep 18 20:31 dir
-rw-rw-rw- 1 me my_group 0 Sep 18 20:31 file
$ # Here, we'll fix the problem
$ rm file
$ touch file && chmod a+x file
$ ls -l
total 0
drwxrwxrwx+ 1 me my_group 0 Sep 18 20:31 dir
-rwxrwxrwx 1 me my_group 0 Sep 18 20:32 file
user
,group
vàother
mục ACL. Nếu bạn có các mục ACL mặc định cho người dùng hoặc nhóm được đặt tên, chúng sẽ được kế thừa theo quy định, phải không?