ユーザー アカウントと Linux 用 Windows サブシステムのアクセス許可User Accounts and Permissions for Windows Subsystem for Linux

WSL での新しい Linux ディストリビューションを設定する最初の手順は、Linux ユーザーを作成します。Creating your Linux user is the first step in setting up a new Linux distribution on WSL. 作成する最初のユーザー アカウントは自動的に、いくつかの特別な属性を持つ構成します。The first user account you create is automatically configured with a few special attributes:

  1. 既定のユーザーが--にサインインすると自動的に起動します。It is your default user -- it signs-in automatically on launch.
  2. 既定では、Linux 管理者 (sudo グループのメンバー) になります。It is Linux administrator (a member of the sudo group) by default.

Linux 用 Windows サブシステムで実行されている各 Linux ディストリビューションでは、独自の Linux ユーザー アカウントとパスワードを持ちます。Each Linux distribution running on the Windows Subsystem for Linux has its own Linux user accounts and passwords. Linux ユーザー アカウントを構成するには、いつでも、ディストリビューションを追加、再インストール、またはリセットする必要があります。You will have to configure a Linux user account any time you add a distribution, reinstall, or reset. Linux ユーザー アカウントには、ディストリビューションごとに独立した、Windows ユーザー アカウントから独立していることもできます。Linux user accounts are not only independent per distribution, they are also independent from your Windows user account.

Linux パスワードのリセットResetting your Linux password

Linux ユーザー アカウントにアクセスして変更して、現在のパスワードを知っている Linux を使用してパスワードのリセット ツールである可能性が最も高い--そのディストリビューションのpasswdします。If you have access to your Linux user account and know your current password, change it using Linux password reset tools of that distribution -- most likely passwd.

場合は、オプションではなく、ディストリビューションによっては、既定のユーザーをリセットすることでパスワードをリセットすることができます。If that's not an option, depending on the distribution, you may be able to reset your password by resetting the default user.

WSL では、ユーザー アカウントを自動的に識別するために、既定のユーザー タグは、WSL を開始するときログを提供します。WSL offers a default user tag to identify which user account automatically logs in when you start a WSL. 多くのディストリビューションには、ルートともルート ユーザーにパスワードが設定されていない既定のユーザーを設定するためのコマンドが含まれている、ルートに既定のユーザーを変更するは、パスワードのリセットなどの便利なツールです。Since many distributions include commands to set the default user to root and also a root user with no password set, changing the default user to root is a handy tool for things like password reset.

Creators Update 以降For Creators Update and earlier

実行している場合は、Windows 10 Creators update または以前では、次のコマンドを実行して既定の Bash のユーザーを変更できます。If you're running Windows 10 Creators update or earlier, you can change the default Bash user by running the following commands:

  1. 既定のユーザーを変更するroot:Change the default user to root:

    C:\> lxrun /setdefaultuser root
    
  2. 実行bash.exeとして現在のログインにroot:Run bash.exe to now login as root:

    C:\> bash.exe
    
  3. ディストリビューションのパスワードのコマンドを使用してパスワードをリセットし、Linux コンソールを閉じます。Reset your password using the distribution's password command, and close the Linux Console:

    $ passwd username
    $ exit
    
  4. Windows コマンド プロンプトで、通常の Linux ユーザー アカウントに既定のユーザーをリセットします。From Windows CMD, reset your default user back to your normal Linux user account:

    C:\> lxrun.exe /setdefaultuser username
    

Fall Creators Update 以降For Fall Creators Update and later

どのようなコマンドは、特定の配布の使用については、次のように実行します。[distro.exe] /?します。To see what commands are available for a particular distribution, run [distro.exe] /?.

たとえば、Ubuntu のインストール。For example, with Ubuntu installed:

C:\> ubuntu.exe /?

Launches or configures a linux distribution.

Usage:
    <no args>
      - Launches the distro's default behavior. By default, this launches your default shell.

    run <command line>
      - Run the given command line in that distro, using the default configuration.
      - Everything after `run ` is passed to the linux LaunchProcess cal

    config [setting [value]]
      - Configure certain settings for this distro.
      - Settings are any of the following (by default)
        - `--default-user <username>`: Set the default user for this distro to <username>

    clean
      - Uninstalls the distro. The appx remains on your machine. This can be
        useful for "factory resetting" your instance. This removes the linux
        filesystem from the disk, but not the app from your PC, so you don't
        need to redownload the entire tar.gz again.

    help
      - Print this usage message.

ステップ バイ ステップで Ubuntu を使用します。Step by step instructions using Ubuntu:

  1. 開いている CMDOpen CMD

  2. 既定の Linux ユーザーを設定root:Set the default Linux user to root:

    C:\> ubuntu config --default-user root
    
  3. Linux ディストリビューションを起動 (ubuntu)。Launch your Linux distribution (ubuntu). 自動的には、ログインとしてroot:You will automatically login as root:

  4. 使用して、パスワードのリセット、passwdコマンド。Reset your password using the passwd command:

    $ passwd username
    
  5. Windows コマンド プロンプトで、通常の Linux ユーザー アカウントに既定のユーザーをリセットします。From Windows CMD, reset your default user back to your normal Linux user account.

    C:\> ubuntu config --default-user username
    

アクセス許可Permissions

WSL でのアクセスを許可する際に留意する 2 つの重要な概念があります。There are two important concepts to keep in mind when it comes to permissions in WSL:

  1. Windows のアクセス許可モデルは、Windows リソースへのプロセスの権限を制御します。The Windows permission model governs a process' rights to Windows resources
  2. Linux のアクセス許可モデルは、Linux リソースへのプロセスの権限を制御します。The Linux permission model controls a process' rights to Linux resources

WSL で Linux を実行するときに、Linux は、起動するプロセスと同じ Windows 権限があります。When running Linux on WSL, Linux will have the same Windows permissions as the process that launches it. Linux は、2 つのアクセス許可レベルのいずれかで起動できます。Linux can be launched in one of two permission levels:

  • 標準 (非特権):ログイン ユーザーのアクセス許可を持つ Linux が実行されます。Normal (non-elevated): Linux runs with the permissions of the logged-in user
  • 管理者特権で/管理者:管理者特権で/管理者の Windows アクセス許可を持つ Linux が実行されます。Elevated/admin: Linux runs with elevated/admin Windows permissions

昇格されたプロセスできますアクセス/変更 (したがって損害を与える) システム全体の設定とシステム全体/保護対象のデータでは、避けを Windows または Linux いるかどうかが絶対にない限り、昇格されたプロセスを起動します。アプリケーション/tools/シェルです。Because elevated processes can access/modify (and therefore damage) system-wide settings and system-wide/protected data, AVOID launching elevated processes unless you absolutely have to - whether they're Windows or Linux applications/tools/shells!

上記の Windows アクセス許可は、Linux インスタンス内でアクセス許可に依存しません。Linux の「Root 特権」Linux 環境とファイルシステム内のユーザーの権限の影響のみ影響を与えるありませんに与えられている Windows 特権。The above Windows permissions are independent of the permissions within a Linux instance: Linux "Root privileges" only impact the user’s rights within the Linux environment & filesystem; they have no impact on the Windows privileges granted. そのため、ルートとして Linux プロセスを実行している (経由などsudo) Linux 環境内で管理者権限を処理するのみを付与します。Thus, running a Linux process as root (e.g. via sudo) only grants that process admin rights within the Linux environment.

例: Example:
管理者特権の Windows で Bash セッションがアクセスできるcd /mnt/c/Users/AdministratorBash セッションを管理者特権が「アクセス許可が拒否されました」エラーを表示せずにします。A Bash session with Windows admin privileges may access cd /mnt/c/Users/Administrator while a Bash session without admin privileges would see a "Permission Denied" error.

Linux では、入力sudo cd /mnt/c/Users/AdministratorWindows 内でアクセス許可が Windows によって管理されるため、管理者のディレクトリへのアクセスを付与されませんが。In Linux, typing sudo cd /mnt/c/Users/Administrator will not grant access to the Administrator’s directory since permissions within Windows are managed by Windows.

Linux のアクセス許可モデルは、Linux 環境をユーザーが現在の Linux ユーザーに基づいて、アクセス許可を持っている内で重要です。The Linux permission model is important when inside the Linux environment where the user has permissions based on the current Linux user.

例:Example:
Sudo グループ内のユーザーが実行される可能性がsudo apt updateします。A user in the sudo group may run sudo apt update.