LINUX.ORG.RU

Странно работает chmod

 , ,


1

1

Решил разобраться с правами на файлах в хомяке.

Сначала прошёлся chown username /home/username -R , а затем решил поменять права в директории ~/books. Вместо того, чтобы спокойно поменять права, chmod стал ругаться на права доступа chmod: cannot access books/Math: Permission denied, а потом оказалось, что он вообще всё поломал:

ls -l books
//...
?????????? ? ? ? ?            ? agda_tutorial.pdf
//...

Файловая система — XFS

Что это может быть? Проблема с chmod или ФС?


Отмонтируй ФС и проверь, chmod такого делать не должен. Давай сразу uname -a и xfs_db -r /dev/sd?? -c sb -c p.

d ★★★★
()
Ответ на: комментарий от d
<22:17>[~] uname -a
Linux HPdv6 3.19.3-pf #1 SMP PREEMPT Fri Mar 27 12:29:06 MSK 2015 x86_64 GNU/Linux
<22:18>[~] sudo xfs_db -r /dev/dm-4 -c sb -c p
magicnum = 0x58465342
blocksize = 4096
dblocks = 124222464
rblocks = 0
rextents = 0
uuid = 2958f95e-79bc-458a-94eb-4986221f8687
logstart = 67108871
rootino = 192
rbmino = 193
rsumino = 194
rextsize = 1
agblocks = 31055616
agcount = 4
rbmblocks = 0
logblocks = 60655
versionnum = 0xbcb4
sectsize = 4096
inodesize = 256
inopblock = 16
fname = "media\000\000\000\000\000\000\000"
blocklog = 12
sectlog = 12
inodelog = 8
inopblog = 4
agblklog = 25
rextslog = 0
inprogress = 0
imax_pct = 25
icount = 523968
ifree = 168
fdblocks = 14567077
frextents = 0
uquotino = 0
gquotino = null
qflags = 0
flags = 0
shared_vn = 0
inoalignmt = 2
unit = 0
width = 0
dirblklog = 0
logsectlog = 12
logsectsize = 4096
logsunit = 4096
features2 = 0x8a
bad_features2 = 0x8a
features_compat = 0
features_ro_compat = 0
features_incompat = 0
features_log_incompat = 0
crc = 0 (unchecked)
pquotino = 0
lsn = 0
vanzef
() автор топика
Ответ на: комментарий от vanzef

С виду норм. Запусти xfs_repair -n на отмонтированном устройстве. С ключом -n ничего чинить не станет, но ошибки, если есть, покажет.

d ★★★★
()
Ответ на: комментарий от d

xfs_repair -n никаких сообщений об ошибках не выдал

vanzef
() автор топика
Ответ на: комментарий от system-root

Только что попробовал, и Permission denied и знаки вопроса остались.

UPD: из под рута всё выглядит нормаль, и можно, кончено, забить, но вдруг это тревожный звоночек?

vanzef
() автор топика
Последнее исправление: vanzef (всего исправлений: 1)
Ответ на: комментарий от vanzef

Permission denied даже когда пробуешь изменить пользователя и группу от рута через судо? что за бред? это не возможно, только если правила apparmor\selinux не напридумал

system-root ★★★★★
()
Ответ на: комментарий от system-root

Да, было такое. Проблема в том, что всё это работает через раз, но теперь я даже обои не могу поставить, так как нет прав доступа.

apparmor/selinux не стоит

vanzef
() автор топика
Последнее исправление: vanzef (всего исправлений: 1)
Ответ на: комментарий от system-root

Есть подозрение, что у меня проблемы с железом, так как ровно через раз ноут не реагирует на клавиатуру вообще (обычно — в GRUB'е), но я без понятия, как и что мне диагностировать.

vanzef
() автор топика
Ответ на: комментарий от system-root

Ага, одинаковые, но дело точно не в этом. У меня уже вообще доступ к диску из-под пользователя пропал.

vanzef
() автор топика

Может ли быть дело в том, что раздел, на котором проводятся операции, монтируется отдельно (в /media/mediavol)?

vanzef
() автор топика
Последнее исправление: vanzef (всего исправлений: 2)
Ответ на: комментарий от vanzef

Может ли быть дело в том, что раздел, на котором проводятся операции, монтируется отдельно (в /media/mediavol)?

Не понятно, поясни. Вроде о /home речь шла.

ashot ★★★★
()
Ответ на: комментарий от ashot

Формально: у меня есть раздел сл всеми файлами, а в хомяке дежать ссылки.

P.S. Все операции я выполнял нал самими файлами, а не ссылками

vanzef
() автор топика

господи, целая страница ответов и никто не сказал что это из-за отсутствия права выполнения на дуректорию у твоего пользователя. в итоге ты не можешь сделать stat() на файлы, но можешь прочесть файл директории, в котором хранятся их имена и номера айнодов.

воспроизводится так:

yunake@t430s:~/tmp$ mkdir test
yunake@t430s:~/tmp$ touch test/afile
yunake@t430s:~/tmp$ ls -l test
total 0
---------- 1 yunake wheel 0 Apr 26 03:52 afile
yunake@t430s:~/tmp$ chmod -x test
yunake@t430s:~/tmp$ ls -l test
/bin/ls: cannot access test/afile: Permission denied
total 0
-????????? ? ? ? ?            ? afile

ты еще и cd в эту директорию сделать не можешь. а вот рут может, и то и другое.

каким макаром ты убрал это право — это другой вопрос. например, случайный чмод, или скажем директория изначально без х для всех, а ты владельца поменял не на себя.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

всё правильно сказал.

господи, целая страница ответов и никто не сказал что это из-за отсутствия права выполнения на дуректорию у твоего пользователя.

Может чтения? Или ты ТСа ман читать заставляешь?

ЗЫЖ Сижу, ковыряюсь шилом в ухе, бац! И пропал… Это ТСу было.

emulek
()
Последнее исправление: emulek (всего исправлений: 1)
Ответ на: комментарий от val-amart

Ага, вы абсолютно правы. Я бездумно делал chmod 660 -R.

Как можно это обратно поправить? chmod -R не подходит, так как нужно оставить файлы не исполняемыми. Придётся писать скрипт?

vanzef
() автор топика
Ответ на: комментарий от vanzef

Придётся писать скрипт?

конечно! Если лень открыть man

execute/search only if the file is a directory or already has execute permission for some user (X)

emulek
()
Ответ на: комментарий от emulek

Ну, я смотрел man, но мне почему-то казалось, что это должно было быть вынесено в ключи, а не написано текстом.

vanzef
() автор топика
Ответ на: комментарий от vanzef

в линуксе всё файлы. Каталоги тоже файлы, chmod их не различает. Потому в правах, X значит «не трогай x».

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.