問題タブ [getpwuid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Linux で getpwuid() によって返されたポインターを解放する必要がありますか?
を呼び出した後getpwuid(uid)
、ポインターへの参照を取得します。もう使用しない場合は、そのポインターを解放する必要がありますか? マニュアルページを読むと、同じ関数への後続の呼び出しによって上書きされる可能性のある静的領域を参照していると書かれているため、そのメモリ領域に触れるべきかどうかわかりません。
ありがとう。
windows - WindowsのPerlでユーザーとグループの情報を取得するにはどうすればよいですか?
Perlには、ユーザーおよびグループ情報のためにUnixシステム(およびサポートされている場合は他の場所)の/ etc/passwdにアクセスするためのいくつかの組み込み関数があります。例えば、
ユーザーIDを指定してユーザー名を返すか、そのようなユーザーがいない場合はundefを返します。
Perlスクリプトを移植可能で、UnicesとWindowsで実行する必要がある場合、ユーザーとグループの情報にどのようにアクセスする必要がありますか?ActivePerlはUser::grentおよびUser::pwentモジュールをサポートしているようです。これらは、Windowsでも/ etc/passwdへのフィールドごとのアクセスを提供します。不思議なことに、これらは組み込み関数getpw*およびgetgr*をサポートしていません。他にどのような選択肢がありますか?
cocoa - uidのリスト/システム環境設定の名前>アカウント
uidと名前の配列を取得するにはどうすればよいですか?
0から99999まで繰り返して、を実行できgetpwnam()
ます。ただし、ほとんどのマシンのアカウントは5つ未満であるため、最適ではありません。どのフレームワークがこれに関与しているのかわからないため、何を検索すればよいかわかりません。
アカウントをトラバースできるより最適なソリューションはありますか?
編集:投稿した直後にgetpwent()
、アカウントをトラバースするために発見しました。
ただし、それはアカウントがシステム環境設定アカウントであるかどうかを示すものではありません。
それでも、システム環境設定のアカウントを取得するにはどうすればよいでしょうか。
編集:私はこれに相当するコマンドライン、コマンドを見つけましたdscl
。
macos - Mac アプリで getpwuid を動作させるにはどうすればよいですか?
サンドボックス化された Mac アプリでユーザーの実際のホーム フォルダーにアクセスしようとしています。
これは私が試したものです
しかし、私はこのエラーが発生しています:
私は何が欠けていますか?
objective-c - iOS の CPSharedResourcesDirectory に起因する si_user_byuid/getpwuid でのメモリ リーク
私は、数週間後に公開される製品の最適化/分析段階にいます。私のコードに由来しない (と私は信じています) いくつかのリークを見つけて驚いています。そのうちの 1 つは、iOS 5.1.1 に存在する strdup/malloc リークで、更新を待つ以外に何もできません。しかし、今日、私は新しいものを発見しました。現在、どこでどのように漏れているかを特定しようとしています. 楽器レポート:
少し調べてみると、getpwuid は によってインポートされた unix/linux 関数であることがわかりました<pwd.h>
。Instrumentsで をダブルクリックするsi_user_byuid
と、「ソースなし」のサインが表示され、 をダブルクリックするgetpwuid
と arm7 アセンブリが表示されます (これについては申し訳ありませんが、私はよく知りません)。
そう:
- 誰もこれを見たことがありますか?
- 偽陽性でしょうか?
- iOS 5.1.1 に限定されますか?
perl - SVK 同期とスケジュールされたタスク
SVK 同期プロセスを自動化しようとしています。
SVK ミラーを構成した後、次のバッチ ファイルを作成しました。
次に、管理者アカウントで実行する Windows スケジュール タスクを追加します。
私が読んだsvk.logで
getpwuid 関数は C:\Programmi\svk\bin\svk 行 142 で実装されていません。
ヒントはありますか?
psコマンドラインからsvn sync -aを実行できます(同じユーザー)
c++ - valgrind は、Ubuntu を使用する C++ で getpwuid() リークを報告します
次の C++ ファイル pwd01.cpp があります。
これを次のコマンドでコンパイルします。
Ubuntu 12.04.1 LTS / gcc バージョン 4.6.3 では、valgrind がリークを報告します (以下を参照)。Mac OS 10.6.8 / gcc バージョン 4.2.1 で同じコマンドを使用して同じコードをコンパイルすると、valgrind はリークを報告しません。
passwd* を解放する必要がないことは承知しています(Linux で getpwuid() によって返されたポインターを解放する必要がありますか? )。それで、私は何が欠けていますか?
linux - getpwuid() が LDAP ユーザーに対して NULL を返す
ユーザーが LDAP ユーザーである Red Hat Enterprise 6 の現在のユーザー情報を取得する際に問題がありますか?
ユーザー名、ホーム ディレクトリ、およびその他の詳細を取得する必要があるコード (実際にはインストール ツールの一部) があります。ユーザー ID に基づいてこれを行うために、getpwuid() 呼び出しを使用しています。簡単な内訳:
これは、ユーザーがローカル ユーザー (そのシステムの /etc/passwd 内) である場合に問題なく機能します。
ユーザーが LDAP 認証済みユーザーの場合、getuid を呼び出すとユーザー ID または現在のユーザーが返されますが、getpwuid を呼び出すと 0 が返され、エラー コードは errno に設定されません。ドキュメントによると、これはユーザーが存在しないことを意味します。
これは機能するはずですか?getpwuid マンページによると:
getpwnam() 関数は、ユーザー名に一致するパスワード データベース (ローカル パスワード ファイル /etc/passwd、NIS、および LDAP など) 内のレコードの分割フィールドを含む構造体へのポインタを返します。
getpwuid() 関数は、ユーザー ID uid に一致するパスワード データベース内のレコードの分割されたフィールドを含む構造体へのポインターを返します。
現在のユーザーが LDAP によって認証された場合、詳細を取得するために別の呼び出しが必要ですか? アプリケーションで LDAP データベースを開く必要がありますか、それともシステム コールで処理する必要がありますか?
追加: 同じ LDAP ディレクトリに対して認証する RHEL 5 ボックスでもこれを試しました。これは RHEL 6 ボックスの構成の問題でしょうか? それともより広い RHEL 6 の問題ですか?
追加: Basile Starynkevitch の要求による /etc/nsswitch.conf (コメント行は削除されています):
これらのいくつかは、ある時点でldapに言及する必要があると思いますか? 実際、これはLDAPをまったく使用していないことを示唆しています....
linux - getpwid() でランダムにクラッシュする
uidをユーザー名に変換する関数がありますが、
そして、私はそれを次のように呼び出します:
ABRT
またはBUS
エラーでクラッシュすることがあります。
(符号付き整数と符号なし整数の間の変換があることは知っていますが、getpwuid 関数を負の値でテストしましたが、クラッシュしませんでした。)
ここで何がうまくいかないのでしょうか?
c - 2 番目の getpwuid 呼び出しは、古い値を上書きするようです
以下は、ファイルに setuid フラグが設定されている場合に、プロセスの実際の ID と有効な ID を出力する (出力するはずの) 小さな C プログラムです。このプログラムではgetpwuid
、2 回目に呼び出すと (L.No 38)、realUserName
L.No 24 で取得した変数の値を上書きする傾向があります。この動作は説明できません。これは予想される動作で、その理由は何ですか? これを Linux ボックス (RHEL 2.6.18-371.1.2.el5) で試しています。
出力: