실수로 실행한 명령은 사용자 디렉터리가 아닌 루트 홈 디렉터리를 재귀적으로 삭제하는 것이었습니다. sudo나 루트 권한이 없다는 것은 아닙니다.
이는 일반적인 의미의 데이터 복구 문제가 아닙니다. 어떤 이유에서인지 루트 디렉터리의 하위 디렉터리 대부분은 /home
그대로인 것 같습니다. 특히 내 사용자 홈 디렉터리는 /home/user
여전히 존재하며 대부분의/(모두?) 하위 디렉터리가 있습니다. 거기에는 살아남은 것으로 보이는 모든 작업 파일이 포함된 .ssh
디렉터리가 있습니다 . code
그러나 내 .bashrc
파일이 없습니다.
rm -rf /home
내 첫 번째 질문은 왜 이러한 디렉토리가 명령에 영향을 미치지 않습니까?
이 글을 쓰는 주된 목적은 내가 알고 있는 것을 이해하는 것입니다.했다제거하고 설치가 다시 제대로 작동하도록 했습니다.
우분투에서는 l=ls
별칭을 더 이상 사용할 수 없으므로 이러한 별칭이 포함된 일부 파일을 삭제한 것 같습니다.
일부 프로그램도 누락되었습니다.
탭 완성도 작동하지 않습니다. 어떻게 다시 돌려받을 수 있는지 아이디어가 있나요?
答え1
글쎄요, 한 번에 여러 가지 질문을 해서는 안 됩니다. 귀하의 /home/user
디렉토리가 삭제되지 않은 이유에 대해 답변 드리겠습니다 .
UNIX 계열 시스템의 파일 권한을 이해해야 합니다. 이는 3개의 트리플로 구성됩니다: rwxrwxrwx, 첫 번째 트리플은 소유자의 권한, 두 번째 트리플은 소유자 그룹의 권한, 마지막 트리플은 다른 모든 사람의 라이센스입니다.
들어가서 /home/
실행하면 ls -la
다음과 같은 내용이 표시됩니다.
drwxr-xr-x 6 root root 4096 Feb 15 2022 .
drwxr-xr-x 19 root root 4096 Jan 19 20:56 ..
drwxr-xr-x 88 user user 4096 Feb 1 21:22 user
그것을 분석해 봅시다. 이 .
디렉토리는 우리가 있는 ( ) 디렉토리 이며 사용자와 그룹이 소유하고 있음 /home/
을 알 수 있습니다 . 이것은 귀하의 사용자가 아니며 해당 사용자를 실행하거나 "될" 수 있지만 일반적으로 해당 디렉터리를 변경하려는 명령을 실행하면 세 번째 삼중항인 "기타"가 됩니다. 다른 것에는 권한이 있습니다 . 즉, 해당 디렉터리의 내용(파일 및 하위 디렉터리 목록)을 읽고 실행할 수 있습니다(해당 디렉터리로 변경하고 해당 디렉터리가 현재 디렉터리인 동안 명령을 실행).root
root
su
sudo
r-x
파일이나 하위 디렉터리를 삭제하면 실제로 파일이 변경되는 것이 아니라 파일이 있는 디렉터리가 변경됩니다. 일부 시스템에서는 쓰기 소유권은 없지만 파일이 있는 디렉터리에 대한 쓰기 권한이 있는 파일을 삭제하려고 하면 경고가 표시되지만 기술적으로는 그렇게 할 수 있습니다.
그것에 대해 생각해 봅시다:
/ root root drwxr-xr-x
/test/ user user drwxrwxr--
/test/t root root -rwx------
/tst user user -rw-rw-rw-
슈퍼유저(루트)가 되지 않으면 파일을 읽거나 쓸 수 없습니다. /test/t
그러나 쓰기 권한이 있기 때문에 파일을 삭제할 수 있습니다 /test/
.
しかし、文書は/tst
その逆と言われています。問題なくファイルに書き込んだり、内容を読んだり、ファイルを切り取ったりするなどの作業ができます/
。しかし、。
それではあなたの話に戻りましょう/home/
。自分には書き込み権限がなく、/home
何でもできることを覚えておいてください。以内に /home/user/
ただし、削除することはできません。したがって、その中のすべてのファイルは削除されますが、ディレクトリ自体はまだ存在します。
答え2
- するよりも良い
rm -rf /
- 私が言いたいことはここから来る。キル-9常にログインしているユーザー根だからあなたの家の下のすべてを削除していない理由は、あなたではなくあなたとしてログインしているからです。根。
- あなたはrootとしてログインしたと明示的に言わなかったので、あなたがあなたにログインしたと仮定しているので、以下の他のすべては大丈夫
/home
でしょう。書き込みアクセス権を持つアイテム(ホームアカウントなど)のみが有効になります。control-C
中止したいまで実際に削除を開始してください。
- あなたはrootとしてログインしたと明示的に言わなかったので、あなたがあなたにログインしたと仮定しているので、以下の他のすべては大丈夫
-
インストールが正常に機能するようにするには、どのような手順を実行する必要がありますか?
- ユーザーアカウントを再作成してください...
adduser serguio --uid # --gid 100 --no-user-group --create-home --comment Sergio\ Gliesh
- 必要に応じてパラメータを調整してください
adduser
。これは単なる例です。 - 以前とは異なるアカウント名を使用する必要があります。その後、データファイルとフォルダをコピーできますが、隠されたドットファイルはコピーできません
/home/oldaccount
。/home/newaccount
その後、.bashrc
特定のコンテンツがあるかのようにドットファイルを参照し、そのコンテンツを新しいファイルできれいに編集します。/home/<newaccount>/.bashrc
- ユーザーアカウントを再作成してください...