1. ホーム
  2. linux

[解決済み】ホームディレクトリでmkdirが使えない:パーミッションが拒否される(Linux Lubuntu) [閉店]

2022-03-17 22:35:45

質問

Linuxでmkdirコマンドを使ってホームディレクトリにディレクトリを作成しようとしていますが、「permission denied」エラーが発生します。 私は最近ラップトップにLubuntuをインストールし、そのコンピュータで唯一のユーザープロファイルを持っています。

以下は、私のコマンドラインでの出来事です。

jdub@Snowball:~$ cd /home
jdub@Snowball:/home$ mkdir bin
mkdir: cannot create directory ‘bin’: Permission denied
jdub@Snowball:/home$ 

このフォルダにアクセスするにはどうしたらいいですか? 私はスクリプトを書こうとしていて、ここのチュートリアルに沿っています。 http://linuxcommand.org/wss0010.php

ご協力ありがとうございました。

解決方法は?

コメントで@kirbyfan64sosさんが指摘されているように。 /home はホームディレクトリではありません (別名、ホームフォルダ)を使用します。

というのは /home 絶対的な、リテラル というパスがあります。 ユーザー固有のコンポーネントを持たない がヒントになります。

一方 /home は、たまたま ディレクトリの すべて Linuxベースのシステムで、ユーザー固有のホームディレクトリがありますが、これはプラットフォームによって異なるため、それに頼るべきではありません。例えば、macOSの同等のディレクトリは /Users .

すべてのUnixプラットフォームに共通すること は、ホームディレクトリに移動する/参照するための以下の方法です。

  • 使用方法 cd 引数なし に変更します。 つまり,あなたのホームディレクトリを 作業ディレクトリ .
    • cd # changes to home dir; e.g., '/home/jdoe'
  • 非引用 ~ 単体で / 非引用 ~/ パス文字列の先頭で は、あなたのホームディレクトリを表します。/ ホームディレクトリから始まるパス。 チルダ展開 (参照 man bash )
    • echo ~ # outputs, e.g., '/home/jdoe'
  • $HOME - の一部として、非引用またはできれば ダブルクォート 文字列 - あなたのホームディレクトリを指します。 HOME は、あらかじめ定義された、ユーザー固有の 環境変数 :
    • cd "$HOME/tmp" # changes to your personal folder for temp. files

したがって、目的のフォルダを作成するためには

mkdir "$HOME/bin"  # same as: mkdir ~/bin

なお、ほとんどの場所で が必要です。 スーパーユーザー (ルートユーザー) の権限でファイルやディレクトリを作成することができます。 Permission denied のエラーが発生します。